IXmlSerializable Schnittstelle

Definition

Stellt eine benutzerdefinierte Formatierung für die XML-Serialisierung und Deserialisierung bereit.

public interface class IXmlSerializable
public interface IXmlSerializable
type IXmlSerializable = interface
Public Interface IXmlSerializable
Abgeleitet

Beispiele

Der folgende Beispielcode zeigt eine Implementierung der IXmlSerializable Schnittstelle, die ein privates Feld serialisiert.

using System;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;

public class Person : IXmlSerializable
{

    // Private state

    private string personName;

    // Constructors

    public Person (string name)
    {
        personName = name;
    }

    public Person ()
    {
        personName = null;
    }

    // Xml Serialization Infrastructure

    public void WriteXml (XmlWriter writer)
    {
        writer.WriteString(personName);
    }

    public void ReadXml (XmlReader reader)
    {
        personName = reader.ReadString();
    }

    public XmlSchema GetSchema()
    {
        return(null);
    }

    // Print

    public override string ToString()
    {
        return(personName);
    }
}

Hinweise

Es gibt zwei Gründe, diese Schnittstelle zu implementieren. Die erste besteht darin, zu steuern, wie Ihr Objekt serialisiert oder von dem XmlSerializerdeserialisiert wird. Sie können z. B. Daten in Bytes aufteilen, anstatt große Datasets zu puffern, und die Inflation vermeiden, die auftritt, wenn die Daten mit base64-Codierung codiert werden. Um die Serialisierung zu steuern, implementieren Sie die ReadXml und WriteXml methoden zum Steuern der XmlReader zum XmlWriter Lesen und Schreiben des XML-Codes verwendeten Klassen. Ein Beispiel hierfür finden Sie unter How to: Chunk Serialized Data.

Der zweite Grund besteht darin, das Schema zu steuern. Um dies zu aktivieren, müssen Sie den XmlSchemaProviderAttribute serialisierbaren Typ anwenden und den Namen des statischen Elements angeben, das das Schema zurückgibt. XmlSchemaProviderAttribute Ein Beispiel finden Sie unter .

Eine Klasse, die die Schnittstelle implementiert, muss über einen parameterlosen Konstruktor verfügen. Dies ist eine Anforderung der XmlSerializer Klasse.

Methoden

Name Beschreibung
GetSchema()

Diese Methode ist reserviert und sollte nicht verwendet werden. Wenn Sie die schnittstelle IXmlSerializable implementieren, sollten Sie null (Nothing in Visual Basic) von dieser Methode zurückgeben, und wenden Sie bei Angabe eines benutzerdefinierten Schemas stattdessen den XmlSchemaProviderAttribute auf die Klasse an.

ReadXml(XmlReader)

Generiert ein Objekt aus der XML-Darstellung.

WriteXml(XmlWriter)

Konvertiert ein Objekt in die XML-Darstellung.

Gilt für:

Weitere Informationen