MessageBuffer.Close Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Termine l’utilisation de 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 message.
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
Vous devez toujours fermer une MessageBuffer instance en appelant Close une fois l’utilisation terminée. Cela permet aux ressources système d’être potentiellement libérées plus tôt.
Si vous avez appelé CreateBufferedCopy pour créer une mémoire tampon de message d’un message et inspecté le message à l’aide CreateMessagedu message, vous obtiendrez une InvalidOperationException fois que vous tentez 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. Consultez l’exemple de code dans la section Exemple pour une démonstration du scénario précédent et un moyen de résoudre ce problème.