IXmlSerializable, interface (System.Xml.Serialization)

Changer de vue:
ScriptFree
Bibliothèque de classes .NET Framework
IXmlSerializable, interface
Cet article a fait l'objet d'une traduction manuelle. Pour afficher simultanément cette page et le contenu source en anglais, choisissez le paramètre d'affichage Basse densité.

Offre une mise en forme personnalisée pour la sérialisation et la désérialisation XML.

Espace de noms :  System.Xml.Serialization
Assembly :  System.Xml (dans System.Xml.dll)
Syntaxe

Visual Basic
Public Interface IXmlSerializable
C#
public interface IXmlSerializable
VisualC++
public interface class IXmlSerializable
F#
type IXmlSerializable =  interface end

Le type IXmlSerializable expose les membres suivants.

Méthodes

  Nom Description
Méthode publique Pris en charge par XNA Framework fhd7bk0a.PortableClassLibrary(fr-fr,VS.100).gif GetSchema Cette méthode est réservée et ne doit pas être utilisée. Lorsque vous implémentez l'interface IXmlSerializable, vous devez retourner la valeur null (Nothing dans Visual Basic) à partir cette méthode et, si la spécification d'un schéma personnalisé est requise, appliquez à la place XmlSchemaProviderAttribute à la classe.
Méthode publique Pris en charge par XNA Framework fhd7bk0a.PortableClassLibrary(fr-fr,VS.100).gif ReadXml Génère un objet à partir de sa représentation XML.
Méthode publique Pris en charge par XNA Framework fhd7bk0a.PortableClassLibrary(fr-fr,VS.100).gif WriteXml Convertit un objet en sa représentation XML.
Début
Notes

Il y a deux raisons d'implémenter cette interface. La première concerne la façon dont l'objet est sérialisé ou désérialisé par le XmlSerializer. Par exemple, vous pouvez conserver le segment de données en octets au lieu de mettre en mémoire tampon d'importants groupes de données ; vous pouvez également éviter l'inflation qui se produit lorsque les données sont encodées à l'aide de l'encodage Base64. Pour contrôler la sérialisation, implémentez les méthodes ReadXml et WriteXml afin de vérifier les classes XmlReader et XmlWriter utilisées pour la lecture et l'écriture du XML. Pour obtenir un exemple, consultez How To: Chunk Serialized Data.

La deuxième concerne la capacité à contrôler le schéma. Pour cela, vous devez appliquer le XmlSchemaProviderAttribute au type sérialisable et spécifier le nom du membre statique qui retourne le schéma. Pour obtenir un exemple, consultez XmlSchemaProviderAttribute.

Une classe qui implémente l'interface doit avoir un constructeur sans paramètre. Il s'agit d'une exigence de la classe XmlSerializer.

Exemples

Le code suivant illustre une implémentation de l'interface IXmlSerializable qui sérialise un champ privé.

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

}


VisualC++

#using <System.Xml.dll>

using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;
using namespace System::Xml::Serialization;
public ref class Person: public IXmlSerializable
{
private:

   // Private state
   String^ personName;

public:

   // Constructors
   Person( String^ name )
   {
      personName = name;
   }

   Person()
   {
      personName = nullptr;
   }

   // Xml Serialization Infrastructure
   virtual void WriteXml( XmlWriter^ writer )
   {
      writer->WriteString( personName );
   }

   virtual void ReadXml( XmlReader^ reader )
   {
      personName = reader->ReadString();
   }

   virtual XmlSchema^ GetSchema()
   {
      return nullptr;
   }

   // Print
   virtual String^ ToString() override
   {
      return (personName);
   }
};


Informations de version

.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Pris en charge dans :
Plateformes

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Voir aussi

Référence

Autres ressources