MessageBuffer.Close メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
バッファーの操作を終了します。
public:
abstract void Close();
public abstract void Close();
abstract member Close : unit -> unit
Public MustOverride Sub Close ()
例
次の例では、メッセージ バッファーを適切に閉じる方法を示します。
public void AfterReceiveReply(ref Message reply, object correlationState)
{
// Create the buffer.
MessageBuffer buffer = reply.CreateBufferedCopy(13000);
// Inspect the response (for example, extract the body contents).
Message thisReply = buffer.CreateMessage();
XmlDictionaryReader reader = thisReply.GetReaderAtBodyContents();
var info = new StringBuilder();
XmlWriter writer = XmlWriter.Create(info);
writer.WriteNode(reader, true);
writer.Close();
// Resolution: Re-create the message from the buffer before
// closing.
reply = buffer.CreateMessage();
// You can close the buffer after the message has been recreated.
buffer.Close();
}
注釈
操作が完了したら、MessageBufferを呼び出して、常にClose インスタンスを閉じる必要があります。 これにより、システム リソースは、より早く解放される可能性があります。
CreateBufferedCopyを呼び出してメッセージのメッセージ バッファーを作成し、CreateMessageを使用してメッセージを検査した場合、このメソッドを使用してバッファーを閉じようとしたときにInvalidOperationExceptionが表示されます。 この問題を回避するには、閉じる前にバッファーからメッセージを再作成する必要があります。 前のシナリオのデモと、この問題を解決する方法については、「例」セクションのコード サンプルを参照してください。