BodyWriter Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar författaren av meddelandetexten.
public ref class BodyWriter abstract
public abstract class BodyWriter
type BodyWriter = class
Public MustInherit Class BodyWriter
- Arv
-
BodyWriter
- Härledda
Exempel
I följande exempel visas hur du härleder en klass från BodyWriter. Den här åsidosättningen tar in en matris med strängar och skriver dem till en 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
Kommentarer
Ett meddelande består av rubriker och en brödtext. Rubrikerna buffrade och brödtexten strömmas. Eftersom brödtexten strömmas kan användaren inte skicka det faktiska innehållet i brödtexten till ett meddelande. I stället måste användaren skicka en klass som vet hur man skriver brödtexten när den uppmanas att göra det. Detta görs genom att skicka en klass som härletts från BodyWriter till Message. Ett meddelande anropar klassen som härleds från BodyWriter när den kräver att brödtexten skrivs med hjälp av en XmlWriter.
Konstruktorer
| Name | Description |
|---|---|
| BodyWriter(Boolean) |
Initierar en ny instans av BodyWriter klassen som uttryckligen anger om du vill buffra. |
Egenskaper
| Name | Description |
|---|---|
| IsBuffered |
Hämtar ett värde som anger om skrivmetoden kan anropas flera gånger. |
Metoder
| Name | Description |
|---|---|
| BeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
Börjar skriva brödtextinnehåll för brödtextskrivaren med angiven skrivare, återanrop och tillstånd. |
| CreateBufferedCopy(Int32) |
Skapar en buffrad kopia av brödtexten. |
| EndWriteBodyContents(IAsyncResult) |
Avslutar skrivning av brödtextinnehåll. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| OnBeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
Skapar en händelse när brödtextskrivaren börjar skriva brödtextinnehåll med angiven skrivare, återanrop och tillstånd. |
| OnCreateBufferedCopy(Int32) |
Ger en utökningspunkt när brödtextinnehållet skrivs. |
| OnEndWriteBodyContents(IAsyncResult) |
Skapar en händelse när brödtextskrivaren slutar skriva brödtextinnehåll. |
| OnWriteBodyContents(XmlDictionaryWriter) |
När det implementeras tillhandahåller en utökningspunkt när brödtextinnehållet skrivs. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| WriteBodyContents(XmlDictionaryWriter) |
Skriver ut innehållet i meddelandetexten. |