Je recommanderais la sérialisation xml et la désérialisation.
Si j'ai une personne de classe définie avec:
public class Person
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
}
il enregistrer/charger à partir de XML est aussi simple que:
Person donald = new Person{
ID=1,
FirstName="Donald",
LastName="Duck",
DateOfBirth=new DateTime(1950,1,1)};
//create a xml serializer with the required type
XmlSerializer xs=new XmlSerializer(typeof(Person));
//open a stream to the file, and save the instance
TextWriter tw = new StreamWriter(@"C:\donald.xml");
xs.Serialize(tw, donald);
tw.Close();
//open a reader stream to the file, and just load the instance.
TextReader tr = new StreamReader(@"C:\donald.xml");
Person donald2 = (Person) xs.Deserialize(tr);
tr.Close();
caveat: Cela permet de sauvegarder uniquement les propriétés publiques/champs de une classe, en tant qu'éléments XML. Si vous voulez exercer un contrôle supplémentaire sur le XML généré, jetez un oeil aux attributs dans l'espace de nom System.Xml.Serialization (XmlAttributeAttribute est mon préféré),
Il n'est pas clair que vous parlez de classe ou d'instance? – mathk