Soyez le premier à donner votre avis sur cette source.
Snippet vu 9 514 fois - Téléchargée 18 fois
//************************************************************** // classe de test //************************************************************** [Serializable] public class clsTest { //Varaibles Sauvergardées public String _sNom; public DataTable _dtVal; [NonSerialized] //Varaibles non Sauvergardées public String _sVaraible; } //************************************************************** // Exemples d'utilisation //************************************************************** // **** Pour un datatable **** // Sérialisation DataTable dt = new DataTable(); dt.Columns.Add("Test1"); dt.Columns.Add("Test2"); dt.Columns.Add("Test3"); dt.Rows.Add("1;2;3".Split(';')); dt.Rows.Add("4;5;6".Split(';')); Serialisation.Save("Test.dt", dt); // Désérialisation DataTable dt2 = (DataTable)Serialisation.Load("Test.dt"); dataGridView1.DataSource = dt2; // **** Pour une image **** // Sérialisation Bitmap btp1 = new Bitmap(@"Image.jpg"); Serialisation.Save("Test.image", btp1); // Désérialisation Bitmap btp2 = (Bitmap)Serialisation.Load("Test.image"); btp2.Save("test.jpg"); // **** Pour une classe **** // Sérialisation clsTest test = new clsTest(); test._sNom = "Test3"; test._dtVal = new DataTable(); test._dtVal.Columns.Add("tr12uc"); test._dtVal.Columns.Add("c3ruc"); test._dtVal.Rows.Add("1;2".Split(';')); test._dtVal.Rows.Add("4;5".Split(';')); Serialisation.Save("Test.test", test); // Désérialisation clsTest test2 = (clsTest)Serialisation.Load("Test.test"); dataGridView2.DataSource = test2._dtVal; //************************************************************** // Classe de Sérialisation //************************************************************** using System; using System.IO; using System.Runtime.Serialization.Formatters.Binary; public static class Serialisation { public static Boolean Save(String sNom, Object oObj) { Boolean _bRet = false; BinaryFormatter bf = new BinaryFormatter(); FileStream fs = null; FileInfo _Fi = null; FileInfo _FiTemp = null; try { String sFileName = sNom; String sFileNameTemp = sNom + ".sav"; _Fi = new FileInfo(sFileName); _FiTemp = new FileInfo(sFileNameTemp); //si fichier existe on cree une sauvegarde au cas ou :D if (_Fi.Exists) _Fi.CopyTo(_FiTemp.FullName, true); fs = new FileStream(sFileName, FileMode.Create); bf.Serialize(fs, oObj); fs.Close(); _bRet = true; } catch (Exception ex) { if (fs != null) fs.Close(); //si plantage lors de la sauvegarde on remplace le fichier par la sauvegarde ! if (_FiTemp.Exists) _FiTemp.CopyTo(_Fi.FullName, true); _bRet = false; } return _bRet; } public static Object Load(String sFile) { Object oRet; FileStream fs = null; try { fs = new FileStream(sFile, FileMode.Open); BinaryFormatter bf = new BinaryFormatter(); oRet = (Object)bf.Deserialize(fs); fs.Close(); } catch { if (fs != null) fs.Close(); oRet = null; } return oRet; } }
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.