Share via


MessageBuffer.Close Méthode

Définition

Finit d'utiliser la mémoire tampon.

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

Exemples

L'exemple suivant montre comment fermer correctement une mémoire tampon de messages.

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

Remarques

Il est recommandé de toujours fermer une instance MessageBuffer en appelant Close lorsque vous avez fini de l'utiliser. Cela permet aux ressources système de pouvoir être éventuellement libérées plus tôt.

Si vous avez appelé CreateBufferedCopy pour créer la mémoire tampon d'un message, et inspecté le message à l'aide de CreateMessage, vous obtiendrez une InvalidOperationException lorsque vous essaierez de fermer la mémoire tampon à l'aide de cette méthode. Pour éviter ce problème, vous devez recréer le message à partir de la mémoire tampon avant de fermer celle-ci. Consultez l'exemple de code présenté à la section Exemple pour obtenir une démonstration du scénario précédent et un moyen de résoudre ce problème.

S’applique à