2010-12-06 10 views

Antwort

2

Dies funktioniert:

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

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

    //your normal call here 
} 
+1

Gibt es eine Möglichkeit, diese vorher zu dem Client oder Channel zuzuweisen, ohne in der aktuellen Operation Kontext sein zu müssen? – kappasims

4

Eine Alternative, die benötigen keine neue Operation Erstellen und Einstellen der Kopfzeile jedes Mal, wenn der Client verwenden, um die Header angeben, wenn die EndpointAddress zu schaffen.

Beispiel (angepasst von 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); 
Verwandte Themen