IXmlSerializable Interface

Definitie

Biedt aangepaste opmaak voor XML-serialisatie en deserialisatie.

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

Voorbeelden

In de volgende voorbeeldcode ziet u een implementatie van de IXmlSerializable interface waarmee een privéveld wordt geserialiseerd.

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);
    }
}

Opmerkingen

Er zijn twee redenen om deze interface te implementeren. De eerste is om te bepalen hoe uw object wordt geserialiseerd of gedeserialiseerd door de XmlSerializer. U kunt bijvoorbeeld gegevens in bytes segmenteren in plaats van grote gegevenssets te bufferen en ook de inflatie voorkomen die optreedt wanneer de gegevens worden gecodeerd met base64-codering. Als u de serialisatie wilt beheren, implementeert u de ReadXml en WriteXml methoden voor het beheren van de XmlReader en XmlWriter klassen die worden gebruikt voor het lezen en schrijven van de XML. Zie Procedure: Geserialiseerde gegevens chunk voor een voorbeeld hiervan.

De tweede reden is om het schema te beheren. Als u dit wilt inschakelen, moet u het XmlSchemaProviderAttribute op het serialiseerbare type toepassen en de naam opgeven van het statische lid dat het schema retourneert. Zie het XmlSchemaProviderAttribute voorbeeld voor een voorbeeld.

Een klasse die de interface implementeert, moet een parameterloze constructor hebben. Dit is een vereiste van de XmlSerializer klasse.

Methoden

Name Description
GetSchema()

Deze methode is gereserveerd en mag niet worden gebruikt. Wanneer u de IXmlSerializable-interface implementeert, moet u null (Nothing in Visual Basic) van deze methode retourneren en in plaats daarvan, als u een aangepast schema opgeeft, de XmlSchemaProviderAttribute toepassen op de klasse.

ReadXml(XmlReader)

Hiermee wordt een object gegenereerd op basis van de XML-weergave.

WriteXml(XmlWriter)

Converteert een object naar de XML-weergave.

Van toepassing op

Zie ook