語言

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 為了避免這個問題,你需要在關閉前從緩衝區重新建立訊息。 請參閱範例部分的程式碼範例,展示前述情境及解決此問題的方法。

適用於