BodyWriter Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt de schrijver van de hoofdtekst van het bericht.
public ref class BodyWriter abstract
public abstract class BodyWriter
type BodyWriter = class
Public MustInherit Class BodyWriter
- Overname
-
BodyWriter
- Afgeleid
Voorbeelden
In het volgende voorbeeld ziet u hoe u een klasse kunt afleiden van BodyWriter. Deze onderdrukking neemt een matrix van tekenreeksen over en schrijft ze naar een 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
Opmerkingen
Een bericht bestaat uit kopteksten en een hoofdtekst. De headers worden gebufferd en de hoofdtekst wordt gestreamd. Omdat de hoofdtekst wordt gestreamd, kan de gebruiker de werkelijke inhoud van de hoofdtekst niet doorgeven aan een bericht. In plaats daarvan moet de gebruiker een klasse doorgeven die weet hoe de hoofdtekst moet worden geschreven wanneer dit wordt gevraagd. Dit wordt gedaan door een klasse die is afgeleid van de klasse door te geven aan BodyWriter de Message. Een bericht roept de klasse aan die is afgeleid van BodyWriter wanneer de hoofdtekst moet worden geschreven met behulp van een XmlWriter.
Constructors
| Name | Description |
|---|---|
| BodyWriter(Boolean) |
Initialiseert een nieuw exemplaar van de BodyWriter klasse die expliciet aangeeft of er een buffer moet worden gebruikt. |
Eigenschappen
| Name | Description |
|---|---|
| IsBuffered |
Hiermee wordt een waarde opgehaald die aangeeft of de schrijfmethode meerdere keren kan worden aangeroepen. |
Methoden
| Name | Description |
|---|---|
| BeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
Begint met het schrijven van de hoofdtekstinhoud voor de hoofdtekstschrijver met een opgegeven schrijver, callback en status. |
| CreateBufferedCopy(Int32) |
Hiermee maakt u een gebufferde kopie van de hoofdtekst. |
| EndWriteBodyContents(IAsyncResult) |
Hiermee wordt het schrijven van de hoofdtekst beëindigd. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| OnBeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
Hiermee wordt een gebeurtenis gegenereerd wanneer de hoofdtekstschrijver inhoud begint te schrijven met de opgegeven schrijver, callback en status. |
| OnCreateBufferedCopy(Int32) |
Biedt een uitbreidbaarheidspunt wanneer de hoofdinhoud wordt geschreven. |
| OnEndWriteBodyContents(IAsyncResult) |
Hiermee wordt een gebeurtenis gegenereerd wanneer de hoofdtekstschrijver eindigt met het schrijven van de inhoud van de hoofdtekst. |
| OnWriteBodyContents(XmlDictionaryWriter) |
Wanneer de inhoud is geïmplementeerd, biedt dit een uitbreidbaarheidspunt wanneer de hoofdtekst wordt geschreven. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
| WriteBodyContents(XmlDictionaryWriter) |
Hiermee wordt de inhoud van de hoofdtekst van het bericht weggeschreven. |