2013-01-20 24 views
0

我花了兩天的時間試圖配置我的WP7應用程序發送消息頭到我的WCF Soap服務。我只是試圖在每次通話時發送一串信息。WP7 - 添加MessageHeader到WCF Soap服務調用

網上有大量的指南,但我似乎無法將它們拼湊在一起,以獲得我想要做的事情,並且可以通過一些幫助真正做到。

所以 - 有人可以幫我用最簡單的方式添加一個消息檢查器到我的服務,並從我的應用程序附加標題?

謝謝!

回答

0

對於WP7-沒有「簡單」的方法來做到這一點。 WCF中的大多數擴展點都不在WP7平臺中,因此您有幾種選擇。

最簡單的方法是使用OperationContext添加傳出郵件標題。這是相當簡單的(見下文),但你需要做的,對於每一個操作調用:

var client = new ServiceReference1.MyServiceClient(); 
client.OperationCompleted += ...; 
using (new OperationContextScope(client.InnerChannel)) 
{ 
    OperationContext.Current.OutgoingMessageHeaders.Add(
     MessageHeader.CreateHeader(
      "headerName", "http://header.namespace", "the value")); 
    client.OperationAsync(param1, param2); 
} 

如果這樣做,在所有的操作實在是太多了,另一種是創建包裝客戶端類,和爲所有的操作做到這一點。還有很多代碼,但至少它會集中在一個點上,而不是在整個應用程序中傳播。

最後一種選擇(我現在可以記住)是使用消息檢查器。他們不是平臺的一部分,但根據您的情況,我已經實施了對檢查員/格式化人員的一項支持,如博文http://blogs.msdn.com/b/carlosfigueira/archive/2011/06/21/wcf-extensibility-extensibility-in-windows-phone-and-silverlight-3.aspx中所示。對於簡單的場景,它應該工作正常。