MessageBuffer.Close Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Termina de trabalhar com o buffer.
public:
abstract void Close();
public abstract void Close ();
abstract member Close : unit -> unit
Public MustOverride Sub Close ()
Exemplos
O exemplo a seguir demonstra como fechar corretamente um buffer de mensagens.
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();
}
Comentários
Você sempre deve fechar uma MessageBuffer instância chamando Close quando terminar de trabalhar com ela. Isso permite que os recursos do sistema sejam potencialmente liberados mais cedo.
Se você tiver chamado CreateBufferedCopy para criar um buffer de mensagem de uma mensagem e inspecionado a mensagem usando CreateMessage, receberá um InvalidOperationException quando tentar fechar o buffer usando esse método. Para evitar esse problema, você precisa recriar a mensagem do buffer antes de fechar. Consulte o exemplo de código na seção Exemplo para obter uma demonstração do cenário anterior e uma maneira de resolve esse problema.