Sérialisation dans un fichier xml

Soyez le premier à donner votre avis sur cette source.

Snippet vu 24 136 fois - Téléchargée 31 fois

Contenu du snippet

Il est possible de sérialiser très facilement un objet dans un fichier XML... Voilà comment faire

Source / Exemple :


maClasse monObjet = new maClasse(); // peut être n'importe quel objet sérializable, p.ex un DataSet
[...]
using System.Xml.Serialization;
[...]
XmlSerializer serialiseur = new XmlSerializer(typeof(maClasse));
Textwriter writer = new StreamWriter("monfichier.xml");
serializeur.Serialize(writer,monObjet);
writer.Close();
// voilà, c'est tout...
// on peut désérializer de la même façon...
[...]
using System.Xml.Serialization;
[...]
XmlSerializer serialiseur = new XmlSerializer(typeof(maClasse));
TextReader reader = new StreamReader("monfichier.xml");
monObjet = (maClasse) serialiseur.Deserialize(reader);
reader.Close();

Conclusion :


Voilà...
Rien de très compliqué, mais bon... ça peut toujours être utile.
Remarque: on trouve un truc du genre dans l'aide proposée par MicroSoft.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
714
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
19 janvier 2017

Voici une source que je viens de poser qui tente de rassembler un peu tout ce qu'on trouve sur le net et sur le forum pour sérialiser en XML meme les ArrayList ou HashTable

http://www.csharpfr.com/code.aspx?ID=35960
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

Merci de ta rematque... qui dépasse de loin mes compétences dans le domaine de la sérialization.
Il est vrai que certains objets ne sont pas sérializables... pr plus d'info voir msdn.
Je n'avais pas remarqué ce problème pour les champs private.
Messages postés
31
Date d'inscription
samedi 22 janvier 2005
Statut
Membre
Dernière intervention
13 mars 2005
1
Je crois que tu oublies une remarque importante.

XmlSerializer est une classe de sérialisation légère qui permet de sérialiser un objet avec ses champs public. Mais les champs "private", utilisés par la logique interne d'un objet, ne sont pas sérialisés! De plus, on ne peut pas sérialiser les HashTable.

Pour une sérialisation XML complète, il faut utiliser la classe SoapFormatter.
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

oup's... ça m'a échapé!!! Désolé!!!
Un Big merci à Toine31 de me l'avoir fait remarquer... je vais corriger ça tout de suite!!!
Messages postés
10
Date d'inscription
vendredi 20 août 2004
Statut
Membre
Dernière intervention
14 février 2005

Oups pardon, pour ceux qui ne savent pas il faut remplacer le StreamReader par un StreamWriter.
Afficher les 12 commentaires

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.