MessageEncoder::WriteMessage Method (Message^, Int32, BufferManager^, Int32)
When overridden in a derived class, writes a message of less than a specified size to a byte array buffer at the specified offset.
Assembly: System.ServiceModel (in System.ServiceModel.dll)
public: virtual ArraySegment<unsigned char> WriteMessage( Message^ message, int maxMessageSize, BufferManager^ bufferManager, int messageOffset ) abstract
Parameters
- message
-
Type:
System.ServiceModel.Channels::Message^
The Message to write to the message buffer.
- maxMessageSize
-
Type:
System::Int32
The maximum message size that can be written.
- bufferManager
-
Type:
System.ServiceModel.Channels::BufferManager^
The BufferManager that manages the buffer to which the message is written.
- messageOffset
-
Type:
System::Int32
The offset of the segment that begins from the start of the byte array that provides the buffer.
Return Value
Type: System::ArraySegment<Byte>A ArraySegment<T> of type byte that provides the buffer to which the message is serialized.
This method is called by WriteMessage(Message^, Int32, BufferManager^, Int32).
The following code shows how to implement the WriteMessage(Message^, Int32, BufferManager^, Int32) method.
public override ArraySegment<byte> WriteMessage(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset) { MemoryStream stream = new MemoryStream(); XmlWriter writer = XmlWriter.Create(stream, this.writerSettings); message.WriteMessage(writer); writer.Close(); byte[] messageBytes = stream.GetBuffer(); int messageLength = (int)stream.Position; stream.Close(); int totalLength = messageLength + messageOffset; byte[] totalBytes = bufferManager.TakeBuffer(totalLength); Array.Copy(messageBytes, 0, totalBytes, messageOffset, messageLength); ArraySegment<byte> byteArray = new ArraySegment<byte>(totalBytes, messageOffset, messageLength); return byteArray; }
Available since 8
.NET Framework
Available since 3.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0