BodyWriter Sınıf
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.
İleti gövdesinin yazıcısını temsil eder.
public ref class BodyWriter abstract
public abstract class BodyWriter
type BodyWriter = class
Public MustInherit Class BodyWriter
- Devralma
-
BodyWriter
- Türetilmiş
Örnekler
Aşağıdaki örnek, öğesinden BodyWriterbir sınıfın nasıl türetilmiş olduğunu gösterir. Bu geçersiz kılma bir dizi dize alır ve bunları bir XmlDictionaryWriteröğesine yazar.
using System;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Xml;
namespace UEBodyWriter
{
class MyBodyWriter : BodyWriter
{
const string textTag = "text";
string[] bodySegment;
public MyBodyWriter(string[] strData) : base(true)
{
int length = strData.Length;
this.bodySegment = new string[length];
for (int i = 0; i < length; i++)
{
this.bodySegment[i] = strData[i];
}
}
protected override void OnWriteBodyContents(XmlDictionaryWriter writer)
{
writer.WriteStartElement(textTag);
foreach (string str in bodySegment)
{
writer.WriteString(str);
}
writer.WriteEndElement();
}
}
class Program
{
static void Main(string[] args)
{
string[] strings = {"Hello", "world"};
MyBodyWriter bw = new MyBodyWriter(strings);
StringBuilder strBuilder = new StringBuilder(10);
XmlWriter writer = XmlWriter.Create(strBuilder);
XmlDictionaryWriter dictionaryWriter = XmlDictionaryWriter.CreateDictionaryWriter(writer);
bw.WriteBodyContents(dictionaryWriter);
dictionaryWriter.Flush();
}
}
}
Imports System.Text
Imports System.ServiceModel
Imports System.ServiceModel.Channels
Imports System.Xml
Namespace UEBodyWriter
Friend Class MyBodyWriter
Inherits BodyWriter
Private Const textTag As String = "text"
Private bodySegment() As String
Public Sub New(ByVal strData() As String)
MyBase.New(True)
Dim length = strData.Length
Me.bodySegment = New String(length - 1){}
For i = 0 To length - 1
Me.bodySegment(i) = strData(i)
Next i
End Sub
Protected Overrides Sub OnWriteBodyContents(ByVal writer As XmlDictionaryWriter)
writer.WriteStartElement(textTag)
For Each str As String In bodySegment
writer.WriteString(str)
Next str
writer.WriteEndElement()
End Sub
End Class
Module Module1
Sub Main(ByVal args() As String)
Dim strings() As String = {"Hello", "world"}
Dim bw As New MyBodyWriter(strings)
Dim strBuilder As New StringBuilder(10)
Dim writer = XmlWriter.Create(strBuilder)
Dim dictionaryWriter = XmlDictionaryWriter.CreateDictionaryWriter(writer)
bw.WriteBodyContents(dictionaryWriter)
dictionaryWriter.Flush()
End Sub
End Module
End Namespace
Açıklamalar
İleti üst bilgilerden ve gövdeden oluşur. Üst bilgiler arabelleğe alınıp gövde akışı yapılır. Gövde akışı olduğundan, kullanıcı gövdenin gerçek içeriğini iletiye geçiremez. Bunun yerine kullanıcı, istendiğinde gövdenin nasıl yazıldığını bilen bir sınıf geçirmelidir. Bu, öğesinden BodyWriter türetilen bir sınıf geçirilerek Messageyapılır. İleti, gövdesinin kullanılarak XmlWriteryazılması gerektiğinde öğesinden BodyWriter türetilen sınıfını çağırır.
Oluşturucular
BodyWriter(Boolean) |
Arabelleğe alınıp alınmayacağını açıkça belirten sınıfının yeni bir örneğini BodyWriter başlatır. |
Özellikler
IsBuffered |
Yazma yönteminin birden çok kez çağrılıp çağrılamayacağını gösteren bir değer alır. |
Yöntemler
BeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
Belirtilen yazıcı, geri çağırma ve durum ile gövde yazıcısı için gövde içeriğini yazmaya başlar. |
CreateBufferedCopy(Int32) |
Gövdenin arabelleğe alınan bir kopyasını oluşturur. |
EndWriteBodyContents(IAsyncResult) |
Gövde içeriğinin yazısını sonlandırır. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
OnBeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
Gövde yazıcı belirtilen yazıcı, geri çağırma ve durum ile gövde içeriği yazmaya başladığında bir olay tetikler. |
OnCreateBufferedCopy(Int32) |
Gövde içeriği yazıldığında bir genişletilebilirlik noktası sağlar. |
OnEndWriteBodyContents(IAsyncResult) |
Gövde yazarı gövde içeriğini yazmayı bitirdiğinde bir olay oluşturur. |
OnWriteBodyContents(XmlDictionaryWriter) |
Uygulandığında, gövde içeriği yazıldığında bir genişletilebilirlik noktası sağlar. |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
WriteBodyContents(XmlDictionaryWriter) |
İleti gövdesinin içeriğini yazar. |