MessageEncoder.WriteMessage Methode

Definition

Wenn eine abgeleitete Klasse überschrieben wird, wird eine Nachricht in einen angegebenen Datenstrom oder Puffer geschrieben.

Überlädt

Name Beschreibung
WriteMessage(Message, Stream)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird eine Nachricht in einen angegebenen Datenstrom geschrieben.

WriteMessage(Message, Int32, BufferManager)

Schreibt eine Nachricht kleiner als eine angegebene Größe in einen Bytearraypuffer.

WriteMessage(Message, Int32, BufferManager, Int32)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird eine Meldung mit weniger als einer angegebenen Größe in einen Bytearraypuffer am angegebenen Offset geschrieben.

WriteMessage(Message, Stream)

Quelle:
MessageEncoder.cs
Quelle:
MessageEncoder.cs
Quelle:
MessageEncoder.cs

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird eine Nachricht in einen angegebenen Datenstrom geschrieben.

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)

Parameter

message
Message

Der Message zu schreibende Code in das stream.

stream
Stream

Das Stream Objekt, in das die message Datei geschrieben wird.

Beispiele

Der folgende Code zeigt, wie die WriteMessage(Message, Stream) Methode implementiert wird.

public override void WriteMessage(Message message, Stream stream)
{
    XmlWriter writer = XmlWriter.Create(stream, this.writerSettings);
    message.WriteMessage(writer);
    writer.Close();
}

Gilt für:

WriteMessage(Message, Int32, BufferManager)

Quelle:
MessageEncoder.cs
Quelle:
MessageEncoder.cs
Quelle:
MessageEncoder.cs

Schreibt eine Nachricht kleiner als eine angegebene Größe in einen Bytearraypuffer.

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)

Parameter

message
Message

Der Message zu schreibende Text in den Nachrichtenpuffer.

maxMessageSize
Int32

Die maximale Nachrichtengröße, die geschrieben werden kann.

bufferManager
BufferManager

Der BufferManager Verwaltet den Puffer, in den die Nachricht geschrieben wird.

Gibt zurück

Ein ArraySegment<T> Typ byte , der den Puffer bereitstellt, auf den die Nachricht serialisiert wird.

Hinweise

Diese Methode ruft die abstrakte Methode WriteMessage(Message, Int32, BufferManager, Int32) mit messageOffset = 0 auf.

Gilt für:

WriteMessage(Message, Int32, BufferManager, Int32)

Quelle:
MessageEncoder.cs
Quelle:
MessageEncoder.cs
Quelle:
MessageEncoder.cs

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird eine Meldung mit weniger als einer angegebenen Größe in einen Bytearraypuffer am angegebenen Offset geschrieben.

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)

Parameter

message
Message

Der Message zu schreibende Text in den Nachrichtenpuffer.

maxMessageSize
Int32

Die maximale Nachrichtengröße, die geschrieben werden kann.

bufferManager
BufferManager

Der BufferManager Verwaltet den Puffer, in den die Nachricht geschrieben wird.

messageOffset
Int32

Der Offset des Segments, das vom Anfang des Bytearrays beginnt, das den Puffer bereitstellt.

Gibt zurück

Ein ArraySegment<T> Typ byte , der den Puffer bereitstellt, auf den die Nachricht serialisiert wird.

Beispiele

Der folgende Code zeigt, wie die WriteMessage(Message, Int32, BufferManager, Int32) Methode implementiert wird.

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;
}

Hinweise

Diese Methode wird von WriteMessage(Message, Int32, BufferManager, Int32).

Gilt für: