MessageBuffer.Close Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.