IXmlSerializable Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit une mise en forme personnalisée pour la sérialisation ET la désérialisation XML.
public interface class IXmlSerializable
public interface IXmlSerializable
type IXmlSerializable = interface
Public Interface IXmlSerializable
- Dérivé
Exemples
L’exemple de code suivant montre une implémentation de l’interface IXmlSerializable qui sérialise un champ privé.
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);
}
}
Remarques
Il existe deux raisons d’implémenter cette interface. La première consiste à contrôler la façon dont votre objet est sérialisé ou désérialisé par le XmlSerializer. Par exemple, vous pouvez segmenter des données en octets au lieu de mettre en mémoire tampon des jeux de données volumineux, et é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 et WriteXml les ReadXml méthodes permettant de contrôler les XmlReader classes utilisées XmlWriter pour lire et écrire le code XML. Pour obtenir un exemple, consultez Comment : segmenter les données sérialisées.
La deuxième raison est de pouvoir contrôler le schéma. Pour l’activer, vous devez appliquer le XmlSchemaProviderAttribute type sérialisable et spécifier le nom du membre statique qui retourne le schéma. Consultez l’exemple XmlSchemaProviderAttribute .
Une classe qui implémente l’interface doit avoir un constructeur sans paramètre. Il s’agit d’une exigence de la XmlSerializer classe.
Méthodes
| Nom | Description |
|---|---|
| GetSchema() |
Cette méthode est réservée et ne doit pas être utilisée. Lors de l’implémentation de l’interface |
| ReadXml(XmlReader) |
Génère un objet à partir de sa représentation XML. |
| WriteXml(XmlWriter) |
Convertit un objet en sa représentation XML. |