MessageEncoder.WriteMessage Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Saat ditimpa di kelas turunan, menulis pesan ke aliran atau buffer tertentu.
Overload
WriteMessage(Message, Stream) |
Saat ditimpa di kelas turunan, menulis pesan ke aliran tertentu. |
WriteMessage(Message, Int32, BufferManager) |
Menulis pesan kurang dari ukuran yang ditentukan ke buffer array byte. |
WriteMessage(Message, Int32, BufferManager, Int32) |
Saat ditimpa di kelas turunan, menulis pesan kurang dari ukuran yang ditentukan ke buffer array byte pada offset yang ditentukan. |
WriteMessage(Message, Stream)
- Sumber:
- MessageEncoder.cs
- Sumber:
- MessageEncoder.cs
- Sumber:
- MessageEncoder.cs
Saat ditimpa di kelas turunan, menulis pesan ke aliran tertentu.
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
Contoh
Kode berikut menunjukkan cara mengimplementasikan WriteMessage(Message, Stream) metode .
public override void WriteMessage(Message message, Stream stream)
{
XmlWriter writer = XmlWriter.Create(stream, this.writerSettings);
message.WriteMessage(writer);
writer.Close();
}
Berlaku untuk
WriteMessage(Message, Int32, BufferManager)
- Sumber:
- MessageEncoder.cs
- Sumber:
- MessageEncoder.cs
- Sumber:
- MessageEncoder.cs
Menulis pesan kurang dari ukuran yang ditentukan ke buffer array 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)
Parameter
- maxMessageSize
- Int32
Ukuran pesan maksimum yang dapat ditulis.
- bufferManager
- BufferManager
BufferManager yang mengelola buffer tempat pesan ditulis.
Mengembalikan
ArraySegment<T> Jenis byte
yang menyediakan buffer tempat pesan diserialisasikan.
Keterangan
Metode ini memanggil metode WriteMessage(Message, Int32, BufferManager, Int32) abstrak dengan messageOffset
= 0.
Berlaku untuk
WriteMessage(Message, Int32, BufferManager, Int32)
- Sumber:
- MessageEncoder.cs
- Sumber:
- MessageEncoder.cs
- Sumber:
- MessageEncoder.cs
Saat ditimpa di kelas turunan, menulis pesan kurang dari ukuran yang ditentukan ke buffer array byte pada offset yang ditentukan.
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
Ukuran pesan maksimum yang dapat ditulis.
- bufferManager
- BufferManager
BufferManager yang mengelola buffer tempat pesan ditulis.
- messageOffset
- Int32
Offset segmen yang dimulai dari awal array byte yang menyediakan buffer.
Mengembalikan
ArraySegment<T> Jenis byte
yang menyediakan buffer tempat pesan diserialisasikan.
Contoh
Kode berikut menunjukkan cara mengimplementasikan WriteMessage(Message, Int32, BufferManager, Int32) metode .
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;
}
Keterangan
Metode ini dipanggil oleh WriteMessage(Message, Int32, BufferManager, Int32).