2010-09-17 102 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