MessageBuffer.Close Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Termina de funcionar com o buffer.
public:
abstract void Close();
public abstract void Close();
abstract member Close : unit -> unit
Public MustOverride Sub Close ()
Exemplos
O exemplo seguinte 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();
}
Observações
Deves sempre encerrar uma MessageBuffer instância ligando Close quando terminares de trabalhar com ela. Isto permite que os recursos do sistema sejam potencialmente libertados mais cedo.
Se chamou CreateBufferedCopy para criar um buffer de mensagens e inspecionou a mensagem usando CreateMessage, obterá um InvalidOperationException quando tentar fechar o buffer usando este método. Para evitar este problema, precisa de recriar a mensagem do buffer antes de fechar. Consulte o exemplo de código na secção de Exemplo para uma demonstração do cenário anterior e uma forma de resolver este problema.