Une bonne mise en œuvre de l'interface IXmlSerializable
nécessite le respect de règles spécifiques et de bonnes pratiques.
Règles de la méthode GetSchema() :
Contrairement à la croyance populaire, les méthodes GetSchema()
devraient revenir null
. Comme l'indique la documentation : "Lors de l'implémentation de l'interface IXmlSerializable
, cette méthode doit renvoyer une référence null
Guide de la méthode ReadXml/WriteXml :
Pour les méthodes ReadXml
et WriteXml
:
ReadXml
Les implémentations doivent se lire depuis le début de l'élément enveloppé jusqu'à la fin, inclus. WriteXml
Les implémentations doivent écrire la représentation XML de l'objet dans l'élément d'emballage, à l'exclusion des éléments externes. Gestion des sous-objets :
Lors de la sérialisation d'un objet complexe contenant des sous-objets :
ReadXml
et WriteXml
doivent gérer les sous-objets en implémentant l'interface IXmlSerializable
pour chaque sous-type et en appelant ReadXml
/WriteXml
de manière récursive selon les besoins. Exemple de mise en œuvre :
Un exemple de code est fourni pour illustrer ces principes :
GetSchema()
renvoie null
. ReadXml
Passe au premier élément et commence la lecture à partir de l'élément wrapper. WriteXml
Écrivez les attributs sans les envelopper dans un élément externe. XML correspondant :
Le XML correspondant affiché est correct, chaque élément d'objet (MyCalendar, MyEvent) a son propre ensemble de propriétés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!