MessageBuffer.Close Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Kończy pracę z buforem.
public:
abstract void Close();
public abstract void Close ();
abstract member Close : unit -> unit
Public MustOverride Sub Close ()
Przykłady
W poniższym przykładzie pokazano, jak prawidłowo zamknąć bufor komunikatów.
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();
}
Uwagi
Zawsze należy zamknąć MessageBuffer wystąpienie, wywołując wywołanie Close po zakończeniu pracy z nim. Dzięki temu zasoby systemowe mogą być zwalniane szybciej.
Jeśli wywołano CreateBufferedCopy polecenie w celu utworzenia buforu komunikatów i sprawdzono komunikat przy użyciu metody CreateMessage, otrzymasz InvalidOperationException komunikat podczas próby zamknięcia buforu przy użyciu tej metody. Aby uniknąć tego problemu, należy ponownie utworzyć komunikat z buforu przed zamknięciem. Zobacz przykładowy kod w sekcji Przykład, aby zapoznać się z pokazem poprzedniego scenariusza i sposobem rozwiązania tego problemu.