MessageBuffer.Close Metoda
Definicja
Ważny
Niektóre informacje dotyczą produktów przedpremierowych, które mogą zostać znacznie zmodyfikowane przed premierą. Microsoft nie udziela żadnych gwarancji, ani wyraźnych, ani domniemanych, dotyczących informacji podanych tutaj.
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.