Sommaire

Travailler avec BinaryFormatter

Pour l’essentiel, on procédera d’une manière similaire à celle vue précédemment pour une sérialisation binaire. Une des différences notables est que la classe BinaryFormatter est dans un autre espace de noms : System.Runtime.Serialization.Formatters.Binary.

Prenons un exemple.

1. Exemple de l’utilisation de BinaryFormatter

On cherche à sérialiser binairement les instances de cette classe :

[Serializable]  
public class Individu  
{  
  public string Prénom { get; set; }  
  public int Age { get; set; }  
  public string Activité { get; set; }  
  public string Pays { get; set; }  
  
  public Individu() {}  
}

Puis, on sérialise ainsi (ici vers un fichier) :

IFormatter serialiseur = new BinaryFormatter();  
using (Stream s = new FileStream("individus.bin", FileMode.Append))  
{  
    foreach (Individu individu in individus)  
    {  
        serialiseur.Serialize(s, individu);  
    }  
}

Pour information, le code global est le suivant :

using System;  
using System.Collections.Generic;  
using System.IO;  
using System.Runtime.Serialization;  
using System.Runtime.Serialization.Formatters.Binary;  
  
namespace ConsoleAppXmlSerializer  
{  
    [Serializable]  
    public class Individu  
    { ...