C# - Deserialize
Résolu
Towers
Messages postés
38
Statut
Membre
-
Towers Messages postés 38 Statut Membre -
Towers Messages postés 38 Statut Membre -
Bonjour,
Je cherche à lire un fichier XML à l'aide de c#.
Je suis encore dans les tests et j'ai un bug que je n'arrive pas à résoudre.
J'ai réussi à enregistrer ma classe listeDeContacts dans le fichier "ListeDeContactsEcrire.xml" en la serializant mais je n'arrive pas à deserializer le fichier pour instancier ListeDeContacts.
Voici mon code :
et mon fichier XML généré que je n'arrive pas à relire :
L'erreur que j'obtiens est erreur dans le document XML / {"<ListeDeContacts xmlns=''> n'était pas attendu."}
Voilà si quelqu'un s'y connait, merci de me donner un petit coup de pouce.
Towers
Je cherche à lire un fichier XML à l'aide de c#.
Je suis encore dans les tests et j'ai un bug que je n'arrive pas à résoudre.
J'ai réussi à enregistrer ma classe listeDeContacts dans le fichier "ListeDeContactsEcrire.xml" en la serializant mais je n'arrive pas à deserializer le fichier pour instancier ListeDeContacts.
Voici mon code :
using System;
using System.IO;
using System.Xml.Serialization;
using System.Collections;
namespace TestXML
{
class Program
{
private static string nomRep = "C:\\Documents and Settings\\xpi\\Bureau\\";
static void Main()
{
ecrireListeDeContacts();
lireListeDeContacts();
}
static void lireListeDeContacts()
{
string nomFichier = nomRep + "ListeDeContactsEcrire.xml";
XmlSerializer serializer = new XmlSerializer(typeof(Pays));
TextReader flux = new StreamReader(nomFichier);
ListeDeContacts liste = (ListeDeContacts)serializer.Deserialize(flux);
flux.Close();
foreach (Contact temp in liste.contacts)
{
Console.Out.WriteLine("Nom : " + temp.nom);
Console.Out.WriteLine("Prenom : " + temp.prenom);
Console.Out.WriteLine("Ville : " + temp.ville + "\n");
}
}
static void ecrireListeDeContacts()
{
string nomFichier = nomRep + "ListeDeContactsEcrire.xml";
Contact contact1 = new Contact();
contact1.nom = "Dupont";
contact1.prenom = "Thé";
contact1.ville = "Moulin Sar";
Contact contact2 = new Contact();
contact2.nom = "Dupond";
contact2.prenom = "Dé";
contact2.ville = "Moud L'ainsart";
ListeDeContacts liste = new ListeDeContacts();
liste.ajoutContact(contact1);
liste.ajoutContact(contact2);
XmlSerializer serializer = new XmlSerializer(typeof(ListeDeContacts));
TextWriter flux = new StreamWriter(nomFichier);
serializer.Serialize(flux, liste);
flux.Close();
}
}
et mes classes sont du type :
using System;
using System.Xml.Serialization;
namespace TestXML
{
[Serializable]
public class Contact
{
public string nom;
public string prenom;
public string ville;
}
}
et mon fichier XML généré que je n'arrive pas à relire :
<?xml version="1.0" encoding="utf-8"?> <ListeDeContacts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <contacts> <Contact> <nom>Dupont</nom> <prenom>Thé</prenom> <ville>Moulin Sar</ville> </Contact> <Contact> <nom>Dupond</nom> <prenom>Dé</prenom> <ville>Moud L'ainsart</ville> </Contact> </contacts> </ListeDeContacts>
L'erreur que j'obtiens est erreur dans le document XML / {"<ListeDeContacts xmlns=''> n'était pas attendu."}
Voilà si quelqu'un s'y connait, merci de me donner un petit coup de pouce.
Towers
2 réponses
En fait je me sens bête mais c'était juste un problème de recopie de code, d'une fonction à l'autre...*
en fait il fallait écrire :
static void lireListeDeContacts()
{
string nomFichier;
XmlSerializer serializer = new XmlSerializer(typeof(Pays));
...
...
}
en fait il fallait écrire :
static void lireListeDeContacts()
{
string nomFichier;
XmlSerializer serializer = new XmlSerializer(typeof(ListeDeContacts));
...
...
}