MessageEncoder.WriteMessage Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Cuando se invalida en una clase derivada, escribe un mensaje a una secuencia o búfer especificados.
Sobrecargas
WriteMessage(Message, Stream) |
Cuando se invalida en una clase derivada, escribe un mensaje a una secuencia especificada. |
WriteMessage(Message, Int32, BufferManager) |
Escribe un mensaje menor que un tamaño especificado en un búfer de la matriz de bytes. |
WriteMessage(Message, Int32, BufferManager, Int32) |
Cuando se invalida en una clase derivada, escribe un mensaje menor de un tamaño especificado en un búfer de una matriz de bytes en la posición especificada. |
WriteMessage(Message, Stream)
- Source:
- MessageEncoder.cs
- Source:
- MessageEncoder.cs
- Source:
- MessageEncoder.cs
Cuando se invalida en una clase derivada, escribe un mensaje a una secuencia especificada.
public:
abstract void WriteMessage(System::ServiceModel::Channels::Message ^ message, System::IO::Stream ^ stream);
public abstract void WriteMessage (System.ServiceModel.Channels.Message message, System.IO.Stream stream);
abstract member WriteMessage : System.ServiceModel.Channels.Message * System.IO.Stream -> unit
Public MustOverride Sub WriteMessage (message As Message, stream As Stream)
Parámetros
Ejemplos
En el código siguiente se muestra cómo implementar el método WriteMessage(Message, Stream).
public override void WriteMessage(Message message, Stream stream)
{
XmlWriter writer = XmlWriter.Create(stream, this.writerSettings);
message.WriteMessage(writer);
writer.Close();
}
Se aplica a
WriteMessage(Message, Int32, BufferManager)
- Source:
- MessageEncoder.cs
- Source:
- MessageEncoder.cs
- Source:
- MessageEncoder.cs
Escribe un mensaje menor que un tamaño especificado en un búfer de la matriz de bytes.
public:
ArraySegment<System::Byte> WriteMessage(System::ServiceModel::Channels::Message ^ message, int maxMessageSize, System::ServiceModel::Channels::BufferManager ^ bufferManager);
public ArraySegment<byte> WriteMessage (System.ServiceModel.Channels.Message message, int maxMessageSize, System.ServiceModel.Channels.BufferManager bufferManager);
member this.WriteMessage : System.ServiceModel.Channels.Message * int * System.ServiceModel.Channels.BufferManager -> ArraySegment<byte>
Public Function WriteMessage (message As Message, maxMessageSize As Integer, bufferManager As BufferManager) As ArraySegment(Of Byte)
Parámetros
- maxMessageSize
- Int32
Tamaño máximo de los mensajes que se puede escribir.
- bufferManager
- BufferManager
BufferManager que administra el búfer en el que se escribe el mensaje.
Devoluciones
ArraySegment<T> de tipo byte
que proporciona el búfer al que se serializa el mensaje.
Comentarios
Este método llama al método abstracto WriteMessage(Message, Int32, BufferManager, Int32) con messageOffset
= 0.
Se aplica a
WriteMessage(Message, Int32, BufferManager, Int32)
- Source:
- MessageEncoder.cs
- Source:
- MessageEncoder.cs
- Source:
- MessageEncoder.cs
Cuando se invalida en una clase derivada, escribe un mensaje menor de un tamaño especificado en un búfer de una matriz de bytes en la posición especificada.
public:
abstract ArraySegment<System::Byte> WriteMessage(System::ServiceModel::Channels::Message ^ message, int maxMessageSize, System::ServiceModel::Channels::BufferManager ^ bufferManager, int messageOffset);
public abstract ArraySegment<byte> WriteMessage (System.ServiceModel.Channels.Message message, int maxMessageSize, System.ServiceModel.Channels.BufferManager bufferManager, int messageOffset);
abstract member WriteMessage : System.ServiceModel.Channels.Message * int * System.ServiceModel.Channels.BufferManager * int -> ArraySegment<byte>
Public MustOverride Function WriteMessage (message As Message, maxMessageSize As Integer, bufferManager As BufferManager, messageOffset As Integer) As ArraySegment(Of Byte)
Parámetros
- maxMessageSize
- Int32
Tamaño máximo de los mensajes que se puede escribir.
- bufferManager
- BufferManager
BufferManager que administra el búfer en el que se escribe el mensaje.
- messageOffset
- Int32
Posición del segmento que comienza en el inicio de la matriz de bytes que proporciona el búfer.
Devoluciones
ArraySegment<T> de tipo byte
que proporciona el búfer al que se serializa el mensaje.
Ejemplos
En el código siguiente se muestra cómo implementar el método WriteMessage(Message, Int32, BufferManager, Int32).
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;
}
Comentarios
WriteMessage(Message, Int32, BufferManager, Int32) llama a este método.