MessageBuffer.Close Methode

Definition

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 eine Instanz aufrufen Close , wenn Sie damit fertig sind. Dadurch können Systemressourcen möglicherweise früher freigegeben werden.

Wenn Sie aufgerufen CreateBufferedCopy haben, einen Nachrichtenpuffer einer Nachricht zu erstellen und die Nachricht mit CreateMessagedieser Methode zu prüfen, erhalten Sie einen InvalidOperationException Zeitpunkt, wenn Sie versuchen, den Puffer mit dieser Methode zu schließen. Um dieses Problem zu vermeiden, müssen Sie die Nachricht vor dem Schließen aus dem Puffer neu erstellen. Im Codebeispiel im Abschnitt "Beispiel" finden Sie eine Demonstration des vorherigen Szenarios und eine Möglichkeit zum Beheben dieses Problems.

Gilt für: