Я пытаюсь написать базовый односторонний настраиваемый WCF LOB-адаптер для использования в BizTalk.Однако целевая система не обязательно поддерживает сообщения XML.Я понимаю, что сообщения, проходящие через пользовательский адаптер WCF, упакованы в конверт XML, и что тело сообщения можно кодировать одним из четырех способов:
Эти параметры регулируются конфигурацией свойства Outbound WCF message body
, которая принимает свойство, похожее на следующий XMLфрагмент:
<bts-msg-body xmlns='http://www.microsoft.com/schemas/bts2007' encoding='[xml|base64|hex|string]'/>
В реализации метода Execute
в моем классе CustomAdapterOutboundHandler
как можно узнать, какая кодировка была указана в конфигурации порта отправки?
/// <summary>
/// Executes the request message on the target system and returns a response message.
/// If there isn’t a response, this method should return null
/// </summary>
public Message Execute(Message message, TimeSpan timeout)
{
// ISSUE: how to retrieve the message body as binary byte[] / stream / whatever ?
// <bts-msg-body xmlns='http://www.microsoft.com/schemas/bts2007' encoding='[xml|base64|hex|string]'/>
System.Xml.XmlDictionaryReader reader = message.GetReaderAtBodyContents();
return null;
}