Lire en anglais

Partager via


BodyWriter Classe

Définition

Représente l'enregistreur du corps du message.

C#
public abstract class BodyWriter
Héritage
BodyWriter
Dérivé

Exemples

L'exemple suivant montre comment dériver une classe à partir de BodyWriter. Cette substitution accepte un tableau de chaînes et les écrit dans une XmlDictionaryWriter.

C#
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();
        }
    }
}

Remarques

Un message se compose d'en-têtes et d'un corps. Les en-têtes sont mis en mémoire tampon et le corps est transmis en continu. Étant donné que le corps est transmis en continu, l'utilisateur ne peut pas passer le contenu réel du corps à un message. L'utilisateur doit alors passer une classe qui sait comment écrire le corps lorsque cela lui est demandé. Cela est effectué en passant une classe dérivée de BodyWriter à Message. Un message appelle la classe dérivée de BodyWriter à chaque fois qu'il requiert que le corps soit écrit à l'aide d'une XmlWriter.

Constructeurs

BodyWriter(Boolean)

Initialise une nouvelle instance de la classe BodyWriter qui indique de façon explicite s'il faut effectuer une mise en mémoire tampon.

Propriétés

IsBuffered

Obtient une valeur qui indique si la méthode en écriture peut être appelée plusieurs fois.

Méthodes

BeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object)

Démarre l'écriture du contenu du corps pour l'enregistreur de corps avec l'enregistreur, le rappel et l'état spécifiés.

CreateBufferedCopy(Int32)

Crée une copie mise en mémoire tampon du corps.

EndWriteBodyContents(IAsyncResult)

Met fin à l'écriture du contenu de corps.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnBeginWriteBodyContents(XmlDictionaryWriter, AsyncCallback, Object)

Déclenche un événement lorsque l'enregistreur de corps démarre l'écriture du contenu du corps avec l'enregistreur, le rappel et l'état spécifiés.

OnCreateBufferedCopy(Int32)

Fournit un point d'extensibilité lorsque le contenu du corps est écrit.

OnEndWriteBodyContents(IAsyncResult)

Déclenche un événement lorsque l'enregistreur de corps termine d'écrire le contenu du corps.

OnWriteBodyContents(XmlDictionaryWriter)

Une fois implémenté, fournit un point d'extensibilité lorsque le contenu du corps est écrit.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
WriteBodyContents(XmlDictionaryWriter)

Écrit le contenu du corps du message.

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
UWP 10.0