MessageBuffer.Close 方法

定義

使用緩衝區完畢。

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

適用於