使用C#将Soap Header中的信息发送到WCF服务

时间:2010-09-17 09:22:57

标签: wcf soap header messagecontract

我想要一个Web应用程序来创建对我的WCF服务的服务引用,将信息插入soap调用的标头并调用我的WCF方法。

我阅读了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,我可以这样做吗?

1 个答案:

答案 0 :(得分:0)

客户端,您可以在调用操作之前传递标头:

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

并使用FindHeader服务端

提取它