MessageBuffer.Close Methode

Definitie

Het werken met de buffer is voltooid.

public:
 abstract void Close();
public abstract void Close();
abstract member Close : unit -> unit
Public MustOverride Sub Close ()

Voorbeelden

In het volgende voorbeeld ziet u hoe u een berichtbuffer correct sluit.

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();
}

Opmerkingen

Sluit altijd een MessageBuffer exemplaar door aan te roepen Close wanneer u klaar bent met het werken. Hierdoor kunnen systeembronnen sneller worden vrijgemaakt.

Als u een berichtbuffer van een bericht hebt gemaakt CreateBufferedCopy en het bericht hebt geïnspecteerd met behulp CreateMessagevan, krijgt u een InvalidOperationException melding wanneer u de buffer probeert te sluiten met behulp van deze methode. Om dit probleem te voorkomen, moet u het bericht opnieuw maken vanuit de buffer voordat u het sluit. Zie het codevoorbeeld in de sectie Voorbeeld voor een demonstratie van het vorige scenario en een manier om dit probleem op te lossen.

Van toepassing op