C# - Deserialize

Résolu/Fermé
Towers Messages postés 37 Date d'inscription samedi 2 février 2008 Statut Membre Dernière intervention 10 mai 2012 - 8 juin 2009 à 16:10
Towers Messages postés 37 Date d'inscription samedi 2 février 2008 Statut Membre Dernière intervention 10 mai 2012 - 9 juin 2009 à 09:28
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 :
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

Towers Messages postés 37 Date d'inscription samedi 2 février 2008 Statut Membre Dernière intervention 10 mai 2012 3
9 juin 2009 à 09:28
En fait je me sens bête mais c'était juste un problème de recopie de code, d'une fonction à l'autre...*
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));
            ...
            ...
        }
0
Towers Messages postés 37 Date d'inscription samedi 2 février 2008 Statut Membre Dernière intervention 10 mai 2012 3
9 juin 2009 à 08:59
UP !
-1