IXmlSerializable Interface

Definição

Fornece formatação personalizada para serialização e desserialização de XML.

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

Exemplos

O seguinte exemplo de código mostra uma implementação da IXmlSerializable interface que serializa um 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);
    }
}

Observações

Existem duas razões para implementar esta interface. A primeira é controlar como o seu objeto é serializado ou desserializado pelo XmlSerializer. Por exemplo, pode fragmentar os dados em bytes em vez de armazenar grandes conjuntos de dados, e também evitar a inflação que ocorre quando os dados são codificados usando codificação Base64. Para controlar a serialização, implemente os ReadXml métodos and WriteXml para controlar as XmlReader classes and XmlWriter usadas para ler e escrever o XML. Para um exemplo disto, veja Como: Fragmentar Dados Serializados.

A segunda razão é conseguir controlar o esquema. Para permitir isto, deve aplicar o XmlSchemaProviderAttribute ao tipo serializável e especificar o nome do membro estático que devolve o esquema. Veja o XmlSchemaProviderAttribute para um exemplo.

Uma classe que implementa a interface deve ter um construtor sem parâmetros. Isto é um requisito da XmlSerializer disciplina.

Métodos

Name Description
GetSchema()

Este método é reservado e não deve ser utilizado. Ao implementar a interface IXmlSerializable, deve devolver null (Nothing em Visual Basic) deste método e, em vez disso, se for necessário especificar um esquema personalizado, aplicar o XmlSchemaProviderAttribute à classe.

ReadXml(XmlReader)

Gera um objeto a partir da sua representação XML.

WriteXml(XmlWriter)

Converte um objeto na sua representação XML.

Aplica-se a

Ver também