Bagikan melalui


BodyWriter Kelas

Definisi

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.

Berlaku untuk