Sdílet prostřednictvím


MessageBuffer.Close Metoda

Definice

Dokončí práci s vyrovnávací pamětí.

public:
 abstract void Close();
public abstract void Close ();
abstract member Close : unit -> unit
Public MustOverride Sub Close ()

Příklady

Následující příklad ukazuje, jak správně zavřít vyrovnávací paměť zpráv.

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();
}

Poznámky

Po dokončení práce s ní byste vždy měli instanci zavřít MessageBuffer voláním Close . To umožňuje, aby se systémové prostředky uvolnily dříve.

Pokud jste vytvořili CreateBufferedCopy vyrovnávací paměť zprávy a zkontrolovali jste zprávu pomocí CreateMessagepříkazu , zobrazí InvalidOperationException se při pokusu o zavření vyrovnávací paměti pomocí této metody. Chcete-li se tomuto problému vyhnout, musíte před zavřením znovu vytvořit zprávu z vyrovnávací paměti. Ukázku kódu v části Příklad najdete v ukázce předchozího scénáře a způsob, jak tento problém vyřešit.

Platí pro