MessageEncoder.WriteMessage Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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
- 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
- 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).