Personnaliser la serialization xml avec les attributs

Description

Serialization Xml personnalisée, Custom Xml serialization C#

Ce code très simple s'adresse aux personnes qui ne connaissent pas ou peu la Serialization XML.
Le but est de montrer comment utiliser les attributs XmlXXXAttribute pour personnaliser la façon dont est généré le fichier XML.

A travers un petit exemple qui sauve un objet Configurations qui contient entre autre une collection de Personne (définie elle-même par un Nom, Age, Sexe, etc.), je montre l'utilisation des dix Attributs qui me semblent les plus courant :

1. Serializable()
2. XmlType()
3. XmlAttribute()
4. XmlElement()
5. XmlText()
6. XmlIgnore()
7. XmlEnum()
8. XmlRoot()
9. XmlArray()
10. XmlArrayItem()

Notez qu'on peut utiliser ses classes avec leur nom long XmlXXXAttribute ou leur nom court XmlXXX
Par exemple, XmlText est équivalent à XmlTextAttribute

Notez également que pour qu'une classe soit Serializable, elle doit remplir certains critères :

1) Déclarer la classe avec l'attribut [Serializable()]. Cet attribut est obligatoire pour les classes qui seront
serializée avec un BinaryFormatter ou SOAPFormatter mais c'est tout de même une bonne pratique de le mettre aussi
pour les classes qui seront serializées avec un XmlSerializer.
2) La classe doit absolument être publique.
3) La classe doit absolument avoir un constructeur sans paramètre.
4) Uniquement les membres publics seront serializés pour un XmlSerializer !

Conclusion :


Si vous avez d'autres attributs que vous utilisez régulièrement et qui ne figurent pas dans la liste ci-dessus, vous pouvez toujours le proposer pour que je l'ajoute.
Les commentaires sont les bienvenus !

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.