How to add soap header to WCF service call. Part 2
If you want to add to every wcf call a soap header and don't want to wrap them - you can easily implement method ApplyClientBehavior of an interface IOperationBehavior , and in this method attach your own message wrapper: clientOperation.Formatter = new MessageWrapper(clientOperation.Formatter); MessageWrapper should implement an interface IClientMessageFormatter . To add your header you have to add next code to SerializeRequest method: public Message SerializeRequest(MessageVersion messageVersion, object[] parameters) { Message res = curFormatter.SerializeRequest(messageVersion, parameters); if (SPContext.Current == null) { res.Headers.Add(MessageHeader.CreateHeader("MyTestHeader", "Test Value")); } } Your Operation Behavior can be attached on initializing stage of your service proxy: foreach (OperationDescription operation ...