MessageEncoder.WriteMessage Yöntem

Tanım

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bir akışa veya arabelleğe bir ileti yazar.

Aşırı Yüklemeler

Name Description
WriteMessage(Message, Stream)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bir akışa bir ileti yazar.

WriteMessage(Message, Int32, BufferManager)

Bayt dizisi arabelleğine belirtilen boyuttan küçük bir ileti yazar.

WriteMessage(Message, Int32, BufferManager, Int32)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen uzaklıktaki bayt dizisi arabelleğine belirtilen boyuttan küçük bir ileti yazar.

WriteMessage(Message, Stream)

Kaynak:
MessageEncoder.cs
Kaynak:
MessageEncoder.cs
Kaynak:
MessageEncoder.cs

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bir akışa bir ileti yazar.

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)

Parametreler

message
Message

Message öğesine yazacak olanstream.

stream
Stream

öğesinin Stream yazıldığı message nesne.

Örnekler

Aşağıdaki kod, yönteminin nasıl uygulandığını WriteMessage(Message, Stream) gösterir.

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

Şunlara uygulanır

WriteMessage(Message, Int32, BufferManager)

Kaynak:
MessageEncoder.cs
Kaynak:
MessageEncoder.cs
Kaynak:
MessageEncoder.cs

Bayt dizisi arabelleğine belirtilen boyuttan küçük bir ileti yazar.

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)

Parametreler

message
Message

Message İleti arabelleğine yazmak için.

maxMessageSize
Int32

Yazılabilecek en büyük ileti boyutu.

bufferManager
BufferManager

İletinin BufferManager yazıldığı arabelleği yöneten.

Döndürülenler

İletinin ArraySegment<T> serileştirildiği arabelleği sağlayan tür byte .

Açıklamalar

Bu yöntem = 0 ile WriteMessage(Message, Int32, BufferManager, Int32) soyut yöntemi messageOffset çağırır.

Şunlara uygulanır

WriteMessage(Message, Int32, BufferManager, Int32)

Kaynak:
MessageEncoder.cs
Kaynak:
MessageEncoder.cs
Kaynak:
MessageEncoder.cs

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen uzaklıktaki bayt dizisi arabelleğine belirtilen boyuttan küçük bir ileti yazar.

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)

Parametreler

message
Message

Message İleti arabelleğine yazmak için.

maxMessageSize
Int32

Yazılabilecek en büyük ileti boyutu.

bufferManager
BufferManager

İletinin BufferManager yazıldığı arabelleği yöneten.

messageOffset
Int32

Arabelleği sağlayan bayt dizisinin başlangıcından başlayan segmentin uzaklığı.

Döndürülenler

İletinin ArraySegment<T> serileştirildiği arabelleği sağlayan tür byte .

Örnekler

Aşağıdaki kod, yönteminin nasıl uygulandığını WriteMessage(Message, Int32, BufferManager, Int32) gösterir.

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

Açıklamalar

Bu yöntem tarafından WriteMessage(Message, Int32, BufferManager, Int32)çağrılır.

Şunlara uygulanır