MessageBuffer.Close Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Termina de trabajar con el búfer.
public:
abstract void Close();
public abstract void Close ();
abstract member Close : unit -> unit
Public MustOverride Sub Close ()
Ejemplos
El ejemplo siguiente muestra cómo cerrar correctamente un búfer del mensaje.
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();
}
Comentarios
Siempre debería cerrar una instancia MessageBuffer llamando a Close cuando acabe de trabajar con ella. De esta forma, los recursos del sistema posiblemente se puedan liberara antes.
Si ha llamado a CreateBufferedCopy para crear un búfer de un mensaje, y ha inspeccionado el mensaje mediante CreateMessage, obtendrá InvalidOperationException al intentar cerrar el búfer mediante este método. Para evitar este problema, necesita volver a crear el mensaje del búfer antes de cerrar. Vea el ejemplo de código en la sección Ejemplo para obtener una demostración del escenario anterior y una manera de resolver este problema.