IXmlSerializable Interfész

Definíció

Egyéni formázást biztosít az XML-szerializáláshoz és a deszerializáláshoz.

public interface class IXmlSerializable
public interface IXmlSerializable
type IXmlSerializable = interface
Public Interface IXmlSerializable
Származtatott

Példák

Az alábbi példakód egy IXmlSerializable magánmezőt szerializáló felület implementációját mutatja be.

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

Megjegyzések

Ennek a felületnek két oka van. Az első az objektum szerializálásának vagy deszerializálásának szabályozása a XmlSerializer. Az adatokat például bájtokra bonthatja a nagy adathalmazok pufferelése helyett, és elkerülheti az inflációt, amely akkor fordul elő, amikor az adatok Base64-kódolással lesznek kódolva. A szerializálás szabályozásához implementálja az WriteXmlReadXml XML olvasásához és írásához használt osztályokat és XmlWriter osztályokat és metódusokatXmlReader. Erre példa : Adattömb szerializált adatok.

A második ok a séma szabályozása. Ennek engedélyezéséhez alkalmaznia kell a XmlSchemaProviderAttribute szerializálható típust, és meg kell adnia annak a statikus tagnak a nevét, amely visszaadja a sémát. Tekintse meg a XmlSchemaProviderAttribute példát.

Az interfészt megvalósító osztálynak paraméter nélküli konstruktorsal kell rendelkeznie. Ez az osztály követelménye XmlSerializer .

Metódusok

Name Description
GetSchema()

Ez a módszer fenntartott, és nem használható. A IXmlSerializable interfész implementálásakor null (Nothing az Visual Basic)-t kell visszaadnia ebből a módszerből, és ehelyett, ha egyéni séma megadása szükséges, alkalmazza a XmlSchemaProviderAttribute az osztályra.

ReadXml(XmlReader)

Létrehoz egy objektumot az XML-reprezentációjából.

WriteXml(XmlWriter)

Átalakítja az objektumot XML-reprezentációvá.

A következőre érvényes:

Lásd még