BodyWriter Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa el escritor del cuerpo del mensaje.
public ref class BodyWriter abstract
public abstract class BodyWriter
type BodyWriter = class
Public MustInherit Class BodyWriter
- Herencia
-
BodyWriter
- Derivado
Ejemplos
En el ejemplo siguiente se muestra cómo derivar una clase de BodyWriter. Esta invalidación toma una matriz de cadenas y las escribe 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
Comentarios
Un mensaje consta de encabezados y un cuerpo. Los encabezados se almacenan en búfer y se transmite el cuerpo. Dado que se transmite el cuerpo, el usuario no puede pasar el contenido real del cuerpo a un mensaje. En su lugar, el usuario debe pasar una clase que sepa cómo escribir el cuerpo cuando se le pida que lo haga. Esto se hace pasando una clase derivada de BodyWriter a .Message Un mensaje llama a la clase derivada de BodyWriter cada vez que requiere que el cuerpo se escriba mediante .XmlWriter
Constructores
| Nombre | Description |
|---|---|
| BodyWriter(Boolean) |
Inicializa una nueva instancia de la BodyWriter clase que indica explícitamente si se va a almacenar en búfer. |
Propiedades
| Nombre | Description |
|---|---|
| IsBuffered |
Obtiene un valor que indica si el método de escritura se puede llamar varias veces. |
Métodos
| Nombre | Description |
|---|---|
| BeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
Comienza a escribir el contenido del cuerpo para el escritor del cuerpo con el escritor, la devolución de llamada y el estado especificados. |
| CreateBufferedCopy(Int32) |
Crea una copia almacenada en búfer del cuerpo. |
| EndWriteBodyContents(IAsyncResult) |
Finaliza la escritura del contenido del cuerpo. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| OnBeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object) |
Genera un evento cuando el escritor del cuerpo comienza a escribir contenido del cuerpo con el escritor, la devolución de llamada y el estado especificados. |
| OnCreateBufferedCopy(Int32) |
Proporciona un punto de extensibilidad cuando se escribe el contenido del cuerpo. |
| OnEndWriteBodyContents(IAsyncResult) |
Genera un evento cuando el escritor del cuerpo termina de escribir contenido del cuerpo. |
| OnWriteBodyContents(XmlDictionaryWriter) |
Cuando se implementa, proporciona un punto de extensibilidad cuando se escribe el contenido del cuerpo. |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
| WriteBodyContents(XmlDictionaryWriter) |
Escribe el contenido del cuerpo del mensaje. |