MessageBuffer.WriteMessage(Stream) 메서드

정의

이 버퍼의 전체 내용을 지정된 IO 스트림에 씁니다.Writes the entire content of this buffer to the specified IO stream.

public:
 virtual void WriteMessage(System::IO::Stream ^ stream);
public virtual void WriteMessage (System.IO.Stream stream);
abstract member WriteMessage : System.IO.Stream -> unit
override this.WriteMessage : System.IO.Stream -> unit

매개 변수

stream
Stream

이 버퍼의 전체 내용을 쓸 대상 IO 스트림입니다.An IO stream that the entire content of this buffer is written to.

예제

private byte[] ConvertMessageToByteArray(ref Message message)   
{  
....//Memory stream that contains the message  
....MemoryStream stream = new MemoryStream();  
....//Create an XmlWriter to serialize the message into a byte array  
....XmlWriterSettings settings = new XmlWriterSettings();  
....settings.Encoding = System.Text.Encoding.UTF8;  
....XmlWriter writer = XmlWriter.Create(stream, settings);  
....//Copy the message into a buffer   
....//Note: This call changes the original message's state  
....MessageBuffer buffer = message.CreateBufferedCopy(int.MaxValue);  
....//Create a copy of the message  
....message = buffer.CreateMessage();  
....//Serialize the message to the XmlWriter   
....message.WriteMessage(writer);  
....//Recreate the message   
....message = buffer.CreateMessage();  
....//Flush the contents of the writer so that the stream gets updated  
....writer.Flush();  
....stream.Flush();  
....//Convert the stream to an array  
....byte[] retval = stream.ToArray();  
    return retval;  
}  

설명

이 기능은 UTF-8 인코더 대신 이진 인코더를 사용합니다.This function uses a binary encoder instead of a UTF-8 encoder. 따라서 MessageBuffer에서 Message로 직접 변환할 수 없습니다.Therefore, you cannot directly convert from a MessageBuffer to a Message. 예제 단원의 코드에서는 이 문제를 해결하는 방법을 보여 줍니다.The code in the example section shows how to work around this problem.

적용 대상