OK, mais reprenons du début
1- on crée une class sérialisable
[Serializable]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string nom, int age)
{
Name = nom;
Age = age;
}
private Person() { }//Constructeur pour la sérialization
}
2- on crée une class programme qui contient la liste,les methodes pour la saisie, la sérialisation et la déserialisation
public class Program
{
List Personnes = new List();
public void saisir()
{
while (true)
{
Console.WriteLine("saisir le nom");
string name = Console.ReadLine();
if (name == "")
break;
Console.WriteLine("saisir l'age");
int age = (ushort.Parse(Console.ReadLine()));
Personnes.Add(new Person(name, age));
}
}
// Serialisation dans un fichier "Personne.xml"
public void Serialize()
{
XmlSerializer serializer = new XmlSerializer(typeof(List));
Stream writer = new FileStream("Personne.xml", FileMode.Create);
serializer.Serialize(writer, Personnes);
writer.Close();
}
//Déserialisation d'un fichier "Personne.xml"
public void Deserialize()
{
XmlSerializer serializer = new XmlSerializer(typeof(List));
FileStream fs = new FileStream("Personne.xml", FileMode.Open);
Personnes = (List)serializer.Deserialize(fs);
fs.Close();
}
}
3- Il ne reste qu'à faire le programme principal qui utilisera la class Program
class MainProgramm
{
static void Main(string[] args)
{
Program test1 = new Program();
test1.saisir();
test1.Serialize();
// on test la désérialisation dans un autre objet.
Program test2 = new Program();
test2.Deserialize(); // La liste de l'objet test1 à été rechargée dans ce nouvel objet test2 ;-)
}
}
4- enfin il faut ajouter les clauses Using
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
using System.IO;
Voila de quoi démarrer.
Bon code
Bob.
C# is amazing, enjoy it!