Альтернативой, которая не требует создания нового 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);