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。 為了避免這個問題發生,您要先從緩衝區重新建立訊息,然後再關閉。 如需先前案例的示範以及解決這個問題的方法,請參閱<範例>一節中的程式碼範例。