MessageBuffer.Close Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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ávy.
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 MessageBuffer instancí byste měli vždy zavřít instanci voláním Close . To umožňuje, aby systémové prostředky mohly být uvolněny dříve.
Pokud jste volali CreateBufferedCopy k vytvoření vyrovnávací paměti zprávy zprávy a zkontrolovali ji pomocí CreateMessage, zobrazí InvalidOperationException se při pokusu o zavření vyrovnávací paměti pomocí této metody. Abyste se tomuto problému vyhnuli, musíte zprávu před zavřením znovu vytvořit 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.