MessageEncoder.WriteMessage Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Quando sottoposto a override in una classe derivata, scrive un messaggio in un flusso o buffer specificato.
Overload
WriteMessage(Message, Stream) |
Quando sottoposto a override in una classe derivata, scrive un messaggio in un flusso specificato. |
WriteMessage(Message, Int32, BufferManager) |
Scrive un messaggio di dimensione inferiore a quella specificata in un buffer di matrice di byte. |
WriteMessage(Message, Int32, BufferManager, Int32) |
Quando sottoposto a override in una classe derivata, scrive un messaggio di dimensione inferiore a quella specificata in un buffer di matrice di byte in corrispondenza dell'offset specificato. |
WriteMessage(Message, Stream)
- Origine:
- MessageEncoder.cs
- Origine:
- MessageEncoder.cs
- Origine:
- MessageEncoder.cs
Quando sottoposto a override in una classe derivata, scrive un messaggio in un flusso specificato.
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)
Parametri
Esempio
Nel codice seguente viene illustrato come implementare il metodo WriteMessage(Message, Stream).
public override void WriteMessage(Message message, Stream stream)
{
XmlWriter writer = XmlWriter.Create(stream, this.writerSettings);
message.WriteMessage(writer);
writer.Close();
}
Si applica a
WriteMessage(Message, Int32, BufferManager)
- Origine:
- MessageEncoder.cs
- Origine:
- MessageEncoder.cs
- Origine:
- MessageEncoder.cs
Scrive un messaggio di dimensione inferiore a quella specificata in un buffer di matrice di byte.
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)
Parametri
- maxMessageSize
- Int32
Dimensione massima consentita per la scrittura di un messaggio.
- bufferManager
- BufferManager
Classe BufferManager che gestisce il buffer nel quale viene scritto il messaggio.
Restituisce
Struttura ArraySegment<T> di tipo byte
che fornisce il buffer nel quale viene serializzato il messaggio.
Commenti
Questo metodo chiama il metodo WriteMessage(Message, Int32, BufferManager, Int32) astratto con messageOffset
= 0.
Si applica a
WriteMessage(Message, Int32, BufferManager, Int32)
- Origine:
- MessageEncoder.cs
- Origine:
- MessageEncoder.cs
- Origine:
- MessageEncoder.cs
Quando sottoposto a override in una classe derivata, scrive un messaggio di dimensione inferiore a quella specificata in un buffer di matrice di byte in corrispondenza dell'offset specificato.
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)
Parametri
- maxMessageSize
- Int32
Dimensione massima consentita per la scrittura di un messaggio.
- bufferManager
- BufferManager
Classe BufferManager che gestisce il buffer nel quale viene scritto il messaggio.
- messageOffset
- Int32
Offset del segmento che inizia dall'inizio della matrice di byte che fornisce il buffer.
Restituisce
Struttura ArraySegment<T> di tipo byte
che fornisce il buffer nel quale viene serializzato il messaggio.
Esempio
Nel codice seguente viene illustrato come implementare il metodo 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;
}
Commenti
Questo metodo viene chiamato da WriteMessage(Message, Int32, BufferManager, Int32).