2010-09-17 103 views
0

我想要一个Web应用程序创建一个服务引用到我的WCF服务,插入信息到肥皂调用头并调用我的WCF方法。发送肥皂头信息到WCF服务在C#

我读到MessageContract属性,并宣布一个在接口文件:

[MessageContract] 
public class BasicServiceHeader 
{ 
    [MessageHeader] 
    public string myString; 
} 

我的WCF接口:

[ServiceContract] 
public interface IBasicService 
{ 

    [OperationContract]  
    [WebGet(UriTemplate = "GetData?value={value}")]  // Add support for HTTP GET Requests 
    string GetData(int value);} 

我不想BasicServiceHeader作为一个参数传递GetData函数,我想保留它的功能,并提取函数内部的BasicServiceHeader,我可以这样做吗?

回答

0

客户端,你可以先调用操作通过一个标题:

MessageHeader messageHeader = MessageHeader.CreateHeader(_headerName, _headersNameSpace, _headerValue); 
OperationContext.Current.OutgoingMessageHeaders.Add(messageHeader); 

,并使用FindHeader服务端

+0

提取它谢谢你,但我不认为我的客户有框架3.5。他以“asmx方式”工作,我的客户端如何向Framework 2.0中的soap方法调用添加新的头信息? – Rodniko 2010-09-17 11:11:49

+0

好的,这有帮助吗? http://blogs.msdn.com/b/kaevans/archive/2007/08/06/programmatically-insert-soapheader-into-soap-request-with-asmx-soapextensions.aspx – 2010-09-17 11:36:59

+0

在我进入Soapextensions之前似乎是一个非常复杂的主题,你能告诉我WCF是否支持SoapHeader属性?我找到了一个使用SoapHeader的简单例子:http://msdn.microsoft.com/en-us/library/system.web.services.protocols.soapheader.aspx,但我无法让它工作。 – Rodniko 2010-09-17 12:00:26