2009-07-31 6 views
2

私は理論的には本当に簡単な何かをしよう:メッセージに文字列をデシリアライズ、ここのコードです:TextMessageEncodingBindingElementでXmlException "予期しない終了"が発生するのはなぜですか?

[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を取得します。 私のコードに何か問題がありますか?

ご回答いただきありがとうございます。

答えて

8

StreamWriterに送信してから、ストリームを読み込む前に(または、より良い方法でそれをusingブロックに入れて)お試しください。

+0

ありがとう、なんてかわいい-_- –

+0

流れの周りにも。 –

+0

'MemoryStream'はキャッシュされていません。なぜなら、私が知っている限り(メモリレスのストリーム用のメモリキャッシュはなぜですか?)、とにかく傷つくことはありません。 –

関連する問題