Aracılığıyla paylaş


MessageEncoder.WriteMessage Yöntem

Tanım

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

Aşırı Yüklemeler

WriteMessage(Message, Stream)

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

WriteMessage(Message, Int32, BufferManager)

Belirtilen boyuttan küçük bir iletiyi bayt dizisi arabelleğine 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 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 olan stream.

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

Belirtilen boyuttan küçük bir iletiyi bayt dizisi arabelleğine 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 yazacak olan.

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> seri hale getirildiği arabelleği sağlayan tür byte .

Açıklamalar

Bu yöntem = 0 ile messageOffset soyut yöntemini WriteMessage(Message, Int32, BufferManager, Int32) ç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 yazacak olan.

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> seri hale getirildiğ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