2010-12-06 57 views

回答

2

這工作:

var header = MessageHeader.CreateHeader("something", "", "blah"); 

using (new OperationContextScope(channel)) 
{ 
    OperationContext.Current.OutgoingMessageHeaders.Add(header); 

    //your normal call here 
} 
+1

是否有預先分配這些給客戶端或的ChannelFactory而不必在當前操作的上下文的方法嗎? – kappasims 2012-10-31 19:07:19

4

不需要創建一個新的OperationContextScope和每次使用客戶端創建EndpointAddress時指定報頭時設置標題中的替代品。

實施例(改編自https://stackoverflow.com/a/5340009/35233

var binding = new WSHttpBinding(); 
var address = new EndpointAddress (
    new Uri (RemoteAddress), 
    new AddressHeader[] { 
     AddressHeader.CreateAddressHeader ("APIKey", "", "bda11d91-7ade-4da1-855d-24adfe39d174") 
    }); 

var client = new ExampleClient (binding, address);