avr
27
2010

Tutoriel sur la sérialisation en C# – Partie 2

Reprenons l’exemple de la partie 1 de notre tutoriel (Ici)

Et rajoutons les deux méthodes suivantes à notre fichier Carnet.cs comme ce qui suis :

public void SauvegarderBin(string filename)
{
FileStream file = File.Open(filename, FileMode.OpenOrCreate);
IFormatter serializer = new BinaryFormatter();
serializer.Serialize(file, this);
file.Close();
}

public Carnet ChargerBin(string filename)
{
FileStream file = File.Open(filename, FileMode.Open);
IFormatter serializer = new BinaryFormatter();
Carnet unCarnet = (Carnet)serializer.Deserialize(file);
file.Close();
return unCarnet;
}

Ainsi que les deux directives suivantes :

using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

On se retrouve avec un tout nouveau système de sérialisation, qui fonctionne de manière tout autre que celui du fichier XML, essayez de lire le fichier produit à l’aide d’un éditeur de texte vous remarquerez que la plus part du fichier est illisible par l’homme, vous voici donc prêt à utiliser deux systèmes distincts de sérialisation de fichier en quelques minutes :cheerful:

N’oubliez pas de modifier le code des boutons sauvegarder et charger de la Form1 carnet.charger() en carnet.chargerBin() et pareil pour la sauvegarde.

Si jamais vous avez des attributs ou des propriétés à ne pas sérialiser vous pouvez utiliser [XmlIgnore] qui indicera au serializer que cette attribut ne doit pas être pris en compte.