Возможно, вы захотите взглянуть на проект WCFExtras в CodePlex - он имеет некоторую поддержку пользовательских заголовков SOAP и тому подобное. Не уверен на 100%, способен ли он удовлетворить ваши потребности, но зацените!
Марк
ОБНОВЛЕНИЕ: рассматривали ли вы создание расширения WCF, например, что-то вроде инспектора сообщений, как на стороне клиента, так и на стороне сервера?
Клиентская сторона IClientMessageInspector определяет два метода BeforeSendRequest
и AfterReceiveReply
, в то время как на стороне сервера IDispatchMessageInspector имеет противоположные методы, т.е.
При этом вы можете добавлять заголовки к каждому сообщению, передаваемому по сети (или выборочно только к нескольким).
Вот фрагмент кода от разработчика IClientMessageInspector, который мы используем для автоматической передачи информации о локали (информации о языке и культуре) от клиентов к серверу - должен дать вам представление о том, как начать:
public object BeforeSendRequest(ref Message request, IClientChannel channel)
{
International intlHeader = new International();
intlHeader.Locale = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName;
MessageHeader header = MessageHeader.CreateHeader(WSI18N.ElementNames.International, WSI18N.NamespaceURI, intlHeader);
request.Headers.Add(header);
return null;
}