MessageBuffer.Close 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
버퍼 작업을 마칩니다.
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 하여 항상 instance 닫아야 합니다. 이렇게 하면 시스템 리소스를 더 빨리 해제할 수 있습니다.
를 호출 CreateBufferedCopy 하여 메시지의 메시지 버퍼를 만들고 를 사용하여 CreateMessage메시지를 검사한 경우 이 메서드를 InvalidOperationException 사용하여 버퍼를 닫으려고 하면 이 표시됩니다. 이 문제를 방지하려면 닫기 전에 버퍼에서 메시지를 다시 만들어야 합니다. 이전 시나리오의 데모와 이 문제를 resolve 방법은 예제 섹션의 코드 샘플을 참조하세요.
적용 대상
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET