IXmlSerializable Interfaz

Definición

Proporciona formato personalizado para la serialización y deserialización XML.

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

Ejemplos

El código de ejemplo siguiente muestra una implementación de la IXmlSerializable interfaz que serializa un campo privado.

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

Comentarios

Hay dos razones para implementar esta interfaz. La primera consiste en controlar cómo el objeto se serializa o deserializa mediante XmlSerializer. Por ejemplo, puede fragmentar datos en bytes en lugar de almacenar en búfer grandes conjuntos de datos y también evitar la inflación que se produce cuando los datos se codifican mediante codificación Base64. Para controlar la serialización, implemente los ReadXml métodos y para controlar las XmlReader clases y WriteXmlXmlWriter usadas para leer y escribir el XML. Para obtener un ejemplo de esto, vea Cómo: Fragmentar datos serializados.

La segunda razón es poder controlar el esquema. Para habilitar esto, debe aplicar al XmlSchemaProviderAttribute tipo serializable y especificar el nombre del miembro estático que devuelve el esquema. Vea el para XmlSchemaProviderAttribute obtener un ejemplo.

Una clase que implementa la interfaz debe tener un constructor sin parámetros. Este es un requisito de la XmlSerializer clase .

Métodos

Nombre Description
GetSchema()

Este método está reservado y no se debe usar. Al implementar la interfaz IXmlSerializable, debe devolver null (Nothing en Visual Basic) desde este método y, en su lugar, si se especifica un esquema personalizado, aplique el XmlSchemaProviderAttribute a la clase .

ReadXml(XmlReader)

Genera un objeto a partir de su representación XML.

WriteXml(XmlWriter)

Convierte un objeto en su representación XML.

Se aplica a

Consulte también