私はこの状況に遭遇しました。
メイン機能:
Message msg = Message.CreateMessage(MessageVersion.Default, "Process");
String xmlData ="Navin";
Byte[] ba = Encoding.ASCII.GetBytes(xmlData);
MemoryStream ms = new MemoryStream(ba);
XmlWriter xw = XmlWriter.Create(ms);
msg.WriteBody(xw);
readMessage(msg);
readMessage(メッセージmsg):
XmlDictionaryReader xdr = msg.GetReaderAtBodyContents();
いつ私はこのエラーが表示されます。
未処理の例外:System.InvalidOperationException:このメッセージは、
それが書かれているので、操作をrtしてください。
これを克服する方法。
応答を待っています。
前もって感謝します。
ベストアンサー
MSDNによると Message.GetReaderAtBodyContentsメソッドそれが読み書きされるとメッセージ本体にアクセスすることはできません。一度しかアクセスできません。メッセージに複数回アクセスするには、
‘CreateBufferedCopy’を使用する必要があります。
MSDNのドキュメントでは例は見つかりませんでしたが、Message.CreateBufferedCopyでMessageBufferインスタンスを作成し、次にMessageBufferのCreateMessageメソッドを使用してバッファの内容にアクセスできるように見えます。
見る: