MessageBuffer.Close Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Slutför arbetet med bufferten.
public:
abstract void Close();
public abstract void Close();
abstract member Close : unit -> unit
Public MustOverride Sub Close ()
Exempel
I följande exempel visas hur du stänger en meddelandebuffert korrekt.
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();
}
Kommentarer
Du bör alltid stänga en MessageBuffer instans genom att anropa Close när du är klar med den. Detta gör att systemresurser kan frigöras tidigare.
Om du har anropat CreateBufferedCopy för att skapa en meddelandebuffert för ett meddelande och inspekterat meddelandet med får CreateMessagedu en InvalidOperationException när du försöker stänga bufferten med den här metoden. För att undvika det här problemet måste du återskapa meddelandet från bufferten innan du stänger. Se kodexemplet i avsnittet Exempel för en demonstration av föregående scenario och ett sätt att lösa det här problemet.