MessageBuffer.WriteMessage(Stream) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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
Public Overridable Sub WriteMessage (stream As Stream)
Parameters
- stream
- Stream
An IO stream that the entire content of this buffer is written to.
Examples
private byte[] ConvertMessageToByteArray(ref Message message)
{
// Memory stream that contains the message.
var stream = new MemoryStream();
// Create an XmlWriter to serialize the message into a byte array.
var 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;
}
Remarks
This function uses a binary encoder instead of a UTF-8 encoder. Therefore, you cannot directly convert from a MessageBuffer to a Message. The code in the example section shows how to work around this problem.