MessageBuffer.Close Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Завершает работу с буфером.
public:
abstract void Close();
public abstract void Close();
abstract member Close : unit -> unit
Public MustOverride Sub Close ()
Примеры
В следующем примере показано, как правильно закрыть буфер сообщений.
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();
}
Комментарии
При завершении работы с экземпляром MessageBuffer всегда следует закрыть экземпляр Close . Это позволяет системным ресурсам потенциально освободиться раньше.
Если вы вызвали CreateBufferedCopy для создания буфера сообщения и проверили сообщение с помощью CreateMessage, вы получите InvalidOperationException ответ при попытке закрыть буфер с помощью этого метода. Чтобы избежать этой проблемы, необходимо повторно создать сообщение из буфера перед закрытием. См. пример кода в разделе "Пример" для демонстрации предыдущего сценария и способа устранения этой проблемы.