Как я могу прочитать сообщение WCF из файла? - PullRequest
0 голосов
/ 18 сентября 2018

Я разрабатываю клиент WCF, который обращается к стороннему сервису SOAP, но у меня возникают проблемы с десериализацией сообщений.

У меня есть дампы необработанных сообщений, но не существует очевидного способачитать их.

Как я могу читать сообщения SOAP из файла, используя WCF?

1 Ответ

0 голосов
/ 18 сентября 2018

Чтобы прочитать сообщение из потока в WCF, вам нужно MessageEncoder.Для сообщений SOAP вы можете получить это через TextMessageEncodingBindingElement.

У меня работал следующий код:

TextMessageEncodingBindingElement binding = new TextMessageEncodingBindingElement(
    MessageVersion.Soap11, Encoding.UTF8);
MessageEncoderFactory factory = binding.CreateMessageEncoderFactory();
MessageEncoder encoder = factory.CreateSessionEncoder();

TypedMessageConverter tmc = TypedMessageConverter.Create(
    typeof(GetDataResponse), "getDataResponse");

GetDataResponse response;

using (FileStream fs = new FileStream(@"Response-20180918111722079.log",  FileMode.Open))
{   
    Message msg = encoder.ReadMessage(fs, 4096);
    response = tmc.FromMessage(msg);
}

// Use your response here.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...