MessageEncoder.WriteMessage Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
Ö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
- 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
- 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.