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 Writer des Nachrichtentexts dar.
public ref class BodyWriter abstract
public abstract class BodyWriter
type BodyWriter = class
Public MustInherit Class BodyWriter
- Vererbung
-
BodyWriter
- Abgeleitet
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie eine Klasse von BodyWriter abgeleitet wird. Diese Überschreibung übernimmt ein Zeichenfolgenarray und schreibt dieses in einen 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
Nachrichten bestehen aus einem Header und aus Text. Die Header werden gepuffert, und der Text wird gestreamt. Da der Text gestreamt wird, kann der eigentliche Inhalt des Texts nicht vom Benutzer an eine Nachricht übergeben werden. Stattdessen muss eine Klasse vom Benutzer übergeben werden, mit der der Text nach Aufforderung geschrieben werden kann. Dies geschieht durch Übergeben einer von BodyWriter abgeleiteten Klasse an Message. Die von BodyWriter abgeleitete Klasse wird von einer Nachricht aufgerufen, wenn der Text mit einem XmlWriter geschrieben werden soll.
Konstruktoren
BodyWriter(Boolean) |
Initialisiert eine neue Instanz der BodyWriter-Klasse, die explizit angibt, ob eine Pufferung erforderlich ist. |
Eigenschaften
IsBuffered |
Ruft einen Wert ab, der angibt, ob die write-Methode mehrfach aufgerufen werden kann. |
Methoden
BeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
Beginnt mit dem Schreiben von Textinhalten für den Text-Writer mit angegebenem Writer, Rückruf und Zustand. |
CreateBufferedCopy(Int32) |
Erstellt eine gepufferte Kopie des Texts. |
EndWriteBodyContents(IAsyncResult) |
Beendet das Schreiben von Textinhalt. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
OnBeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
Löst ein Ereignis aus, wenn das Body Writer-Objekt das Schreiben von Textinhalten mit dem angegebenen Writer, Rückruf und Zustand startet. |
OnCreateBufferedCopy(Int32) |
Stellt einen Erweiterungspunkt bereit, wenn der Textinhalt geschrieben wird. |
OnEndWriteBodyContents(IAsyncResult) |
Löst ein Ereignis aus, wenn das Body Writer-Objekt das Schreiben von Textinhalten beendet. |
OnWriteBodyContents(XmlDictionaryWriter) |
Stellt bei Implementierung einen Erweiterungspunkt bereit, wenn der Textinhalt geschrieben wird. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
WriteBodyContents(XmlDictionaryWriter) |
Schreibt den Inhalt des Nachrichtentexts. |