Leggi in inglese

Condividi tramite


IXmlSerializable Interfaccia

Definizione

Fornisce la formattazione personalizzata per la serializzazione e deserializzazione XML.

C#
public interface IXmlSerializable
Derivato

Esempio

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

C#
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 blocchi di dati in byte anziché buffering di 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 per controllare le XmlReader classi e WriteXmlXmlWriter usate per leggere e scrivere il codice XML. Per un esempio di questo, vedere Procedura: Blocchi di dati serializzati.

Il secondo motivo consiste nel 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. Per un esempio, vedere XmlSchemaProviderAttribute.

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

Metodi

GetSchema()

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

ReadXml(XmlReader)

Genera un oggetto dalla relativa rappresentazione XML.

WriteXml(XmlWriter)

Converte un oggetto nella relativa rappresentazione XML.

Si applica a

Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 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 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Vedi anche