BodyWriter Kelas
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.
Mewakili penulis isi pesan.
public ref class BodyWriter abstract
public abstract class BodyWriter
type BodyWriter = class
Public MustInherit Class BodyWriter
- Warisan
-
BodyWriter
- Turunan
Contoh
Contoh berikut menunjukkan cara memperoleh kelas dari BodyWriter. Penimpaan ini mengambil array string dan menulisnya ke XmlDictionaryWriter.
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
Keterangan
Pesan terdiri dari header dan isi. Header di-buffer dan isinya dialirkan. Karena isi dialirkan, pengguna tidak dapat meneruskan konten isi yang sebenarnya ke pesan. Sebaliknya, pengguna harus melewati kelas yang tahu cara menulis isi ketika diminta untuk melakukannya. Ini dilakukan dengan meneruskan kelas yang berasal dari BodyWriter ke Message. Pesan memanggil kelas yang berasal dari BodyWriter setiap kali mengharuskan isi ditulis menggunakan XmlWriter.
Konstruktor
BodyWriter(Boolean) |
Menginisialisasi instans BodyWriter baru kelas yang secara eksplisit menunjukkan apakah akan buffer. |
Properti
IsBuffered |
Mendapatkan nilai yang menunjukkan apakah metode tulis dapat dipanggil beberapa kali. |
Metode
BeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
Mulai menulis konten isi untuk penulis isi dengan penulis, panggilan balik, dan status tertentu. |
CreateBufferedCopy(Int32) |
Membuat salinan isi yang di-buffer. |
EndWriteBodyContents(IAsyncResult) |
Mengakhiri penulisan konten isi. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
OnBeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
Memunculkan peristiwa ketika penulis isi mulai menulis konten isi dengan penulis, panggilan balik, dan status tertentu. |
OnCreateBufferedCopy(Int32) |
Memberikan titik ekstensibilitas ketika isi isi ditulis. |
OnEndWriteBodyContents(IAsyncResult) |
Memunculkan peristiwa ketika penulis isi berakhir menulis konten isi. |
OnWriteBodyContents(XmlDictionaryWriter) |
Saat diimplementasikan, memberikan titik ekstensibilitas ketika isi isi ditulis. |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
WriteBodyContents(XmlDictionaryWriter) |
Menuliskan isi isi pesan. |