BodyWriter Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt den Autor des Nachrichtentexts dar.
public ref class BodyWriter abstract
public abstract class BodyWriter
type BodyWriter = class
Public MustInherit Class BodyWriter
- Vererbung
-
BodyWriter
- Abgeleitet
Beispiele
Das folgende Beispiel zeigt, wie eine Klasse von BodyWriter. Diese Außerkraftsetzung übernimmt ein Array von Zeichenfolgen und schreibt sie in ein 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
Hinweise
Eine Nachricht besteht aus Kopfzeilen und einem Textkörper. Die Kopfzeilen werden gepuffert, und der Textkörper wird gestreamt. Da der Textkörper gestreamt wird, kann der Benutzer den tatsächlichen Inhalt des Textkörpers nicht an eine Nachricht übergeben. Stattdessen muss der Benutzer eine Klasse übergeben, die weiß, wie der Textkörper geschrieben wird, wenn er dazu aufgefordert wird. Dies geschieht durch Übergeben einer klasse, die von BodyWriter der Message. Eine Nachricht ruft die von der Klasse abgeleitete BodyWriter Klasse auf, wenn der Textkörper mithilfe eines XmlWriter.
Konstruktoren
| Name | Beschreibung |
|---|---|
| BodyWriter(Boolean) |
Initialisiert eine neue Instanz der Klasse, die BodyWriter explizit angibt, ob gepuffert werden soll. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| IsBuffered |
Ruft einen Wert ab, der angibt, ob die Schreibmethode mehrmals aufgerufen werden kann. |
Methoden
| Name | Beschreibung |
|---|---|
| BeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
Beginnt mit dem Schreiben von Textkörperinhalten für den Textschreiber mit angegebenem Writer, Rückruf und Zustand. |
| CreateBufferedCopy(Int32) |
Erstellt eine gepufferte Kopie des Textkörpers. |
| EndWriteBodyContents(IAsyncResult) |
Beendet das Schreiben von Textkörperinhalten. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| OnBeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
Löst ein Ereignis aus, wenn der Body Writer mit dem Schreiben von Textinhalten mit angegebenem Writer, Rückruf und Zustand beginnt. |
| OnCreateBufferedCopy(Int32) |
Stellt einen Erweiterbarkeitspunkt bereit, wenn der Textkörperinhalt geschrieben wird. |
| OnEndWriteBodyContents(IAsyncResult) |
Löst ein Ereignis aus, wenn der Textschreiber das Schreiben von Textkörperinhalten beendet. |
| OnWriteBodyContents(XmlDictionaryWriter) |
Wenn sie implementiert wird, wird ein Erweiterbarkeitspunkt bereitgestellt, wenn der Textkörperinhalt geschrieben wird. |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
| WriteBodyContents(XmlDictionaryWriter) |
Schreibt den Inhalt des Nachrichtentexts aus. |