IXmlSerializable Interfaccia

Definizione

Fornisce formattazione personalizzata per la serializzazione e la deserializzazione XML.

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

Esempio

Il codice di esempio seguente illustra un'implementazione dell'interfaccia IXmlSerializable che serializza un campo privato.

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

Commenti

Esistono due motivi per implementare questa interfaccia. Il primo consiste nel controllare il modo in cui l'oggetto XmlSerializerviene serializzato o deserializzato da . Ad esempio, è possibile suddividere i dati in byte anziché memorizzare nel buffer set di dati di grandi dimensioni ed evitare anche l'inflazione che si verifica quando i dati vengono codificati usando la codifica Base64. Per controllare la serializzazione, implementare i ReadXml metodi e WriteXml per controllare le XmlReader classi e XmlWriter utilizzate per leggere e scrivere il codice XML. Per un esempio, vedere Procedura: Blocchi di dati serializzati.

Il secondo motivo consiste nel poter controllare lo schema. Per abilitare questa operazione, è necessario applicare l'oggetto XmlSchemaProviderAttribute al tipo serializzabile e specificare il nome del membro statico che restituisce lo schema. Vedere per XmlSchemaProviderAttribute un esempio.

Una classe che implementa l'interfaccia deve avere un costruttore senza parametri. Si tratta di un requisito della XmlSerializer classe .

Metodi

Nome Descrizione
GetSchema()

Questo metodo è riservato e non deve essere utilizzato. Quando si implementa l'interfaccia IXmlSerializable, è necessario restituire null (Nothing in Visual Basic) da questo metodo e, se si specifica uno schema personalizzato, applicare la XmlSchemaProviderAttribute alla classe .

ReadXml(XmlReader)

Genera un oggetto dalla relativa rappresentazione XML.

WriteXml(XmlWriter)

Converte un oggetto nella relativa rappresentazione XML.

Si applica a

Vedi anche