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.
Schreibt beim Überschreiben in einer abgeleiteten Klasse eine Nachricht in den angegebenen Stream oder Puffer.
Überlädt
WriteMessage(Message, Stream) |
Schreibt beim Überschreiben in einer abgeleiteten Klasse eine Nachricht in den angegebenen Stream. |
WriteMessage(Message, Int32, BufferManager) |
Schreibt eine Nachricht, die kleiner ist als die angegebene Größe, in einen Bytearraypuffer. |
WriteMessage(Message, Int32, BufferManager, Int32) |
Schreibt beim Überschreiben in einer abgeleiteten Klasse eine Nachricht, die kleiner ist als die angegebene Größe, im angegebenen Offset in einen Bytearraypuffer. |
WriteMessage(Message, Stream)
- Quelle:
- MessageEncoder.cs
- Quelle:
- MessageEncoder.cs
- Quelle:
- MessageEncoder.cs
Schreibt beim Überschreiben in einer abgeleiteten Klasse eine Nachricht in den angegebenen Stream.
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
Im folgenden Codebeispiel wird die Implementierung der WriteMessage(Message, Stream)-Methode veranschaulicht.
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, die kleiner ist als die 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 maximal zulässige Nachrichtengröße, die geschrieben werden kann.
- bufferManager
- BufferManager
Der BufferManager, der den Puffer verwaltet, in den die Nachricht geschrieben wird.
Gibt zurück
Ein ArraySegment<T> vom Typ byte
, das den Puffer bereitstellt, in dem 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
Schreibt beim Überschreiben in einer abgeleiteten Klasse eine Nachricht, die kleiner ist als die angegebene Größe, im angegebenen Offset in einen Bytearraypuffer.
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 maximal zulässige Nachrichtengröße, die geschrieben werden kann.
- bufferManager
- BufferManager
Der BufferManager, der den Puffer verwaltet, in den die Nachricht geschrieben wird.
- messageOffset
- Int32
Offset des Segments, das am Start des Bytearrays beginnt, das den Puffer bereitstellt.
Gibt zurück
Ein ArraySegment<T> vom Typ byte
, das den Puffer bereitstellt, in dem die Nachricht serialisiert wird.
Beispiele
Im folgenden Codebeispiel wird die Implementierung der WriteMessage(Message, Int32, BufferManager, Int32)-Methode veranschaulicht.
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) aufgerufen.