2010-12-06 5 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); 
Смежные вопросы