Une surcharge de WriteXml et ReadXml ton objet DataSet qui prend en paramètre la version du format des données reçues en paramètre (ou alors le détecte automatiquement, à toi de voir ce qui est faisable).
Ensuite, en fonction d'une méthode private "OldLoader()" dans ta class, tu vas pouvoir prendre des décisions pour chaque élément modifié.
Genre, mettons que ton truc contienne un flux XML, avant tu recevais dans la version 1 : "age (int)" et maintenant dans la version 2 c'est un "birthday (datetime)" tu vas pouvoir faire ça dans ton OldLoader() :
Code :
void OldLoader(int version, XmlDocument dom) { Datetime birthday; switch (version) { case 1: int age = int.Parse(dom.DocumentElement.SelectSingleNode("age" ).Value); birthday = Datetime.Now.AddYear(-age); break; case 2: birthday = Datetime.Parse(dom.DocumentElement.SelectSingleNode("birthday" ).Value); break; DEFAULT : throw new Exception(string.Format("Version non supportée : {0}", version)); } }
|
Message édité par MagicBuzz le 16-08-2007 à 14:58:50