Почему я получаю исключение XmlException «Неожиданный конец файла» с TextMessageEncodingBindingElement? - PullRequest
2 голосов
/ 31 июля 2009

Я пытаюсь сделать что-то действительно простое в теории: десериализовать строку в сообщение, вот код:

[TestMethod]
public void EncoderErrorTest()
{
    var message = "<s:Envelope xmlns:s=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:a=\"http://www.w3.org/2005/08/addressing\"><s:Header><a:Action s:mustUnderstand=\"1\">http://tempuri.org/IHelloWorldService/SayHello</a:Action></s:Header><s:Body><SayHello xmlns=\"http://tempuri.org/\"><name>Nico</name></SayHello></s:Body></s:Envelope>";

    MemoryStream stream = new MemoryStream();
    StreamWriter writer = new StreamWriter(stream);
    writer.Write(message);
    stream.Position = 0;
    var soapMessage = new TextMessageEncodingBindingElement().CreateMessageEncoderFactory().Encoder.ReadMessage(stream, 99999);
    Assert.IsNotNull(soapMessage);
}

Но во время десериализации я получаю исключение XmlException "Неожиданный конец файла". Что-то не так с моим кодом?

Заранее спасибо за ваши ответы.

1 Ответ

8 голосов
/ 31 июля 2009

Попробуйте позвонить Flush на StreamWriter перед чтением из потока (или, что еще лучше, поместите его в using -блок).

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