MessageBuffer.Close Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Beendet die Arbeit mit dem Puffer.
public:
abstract void Close();
public abstract void Close ();
abstract member Close : unit -> unit
Public MustOverride Sub Close ()
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie ein Nachrichtenpuffer ordnungsgemäß geschlossen wird.
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();
}
Hinweise
Sie sollten eine MessageBuffer-Instanz immer schließen, indem Sie Close aufrufen, wenn sie nicht weiter benötigt wird. Dadurch können Systemressourcen möglicherweise früher freigegeben werden.
Wenn Sie CreateBufferedCopy aufgerufen haben, um einen Nachrichtenpuffer einer Nachricht zu erstellen, und die Nachricht mit CreateMessage überprüft haben, wird beim Versuch, den Puffer mit dieser Methode zu schließen, eine InvalidOperationException ausgelöst. Um dieses Problem zu vermeiden, müssen Sie vor Schließung die Nachricht vom Puffer neu erstellen. Im Abschnitt mit den Beispielen finden Sie eine Demonstration des zuvor genannten Szenarios sowie eine Möglichkeit, dieses Problem zu lösen.