Вы находитесь на странице: 1из 5

Développement d'Applications Informatiques et Génie Logiciel Visual Basic.

Net / TP N°10

Sérialisation en VISUAL BASIC . NET

Quand un objet est détruit (fin de programme), les valeurs de ses propriétés sont perdues. Si les valeurs de
l’objet changent et doivent être retrouvées lors d’une utilisation ultérieure du programme, il faut les
enregistrer, pour cela on peut aussi utiliser la sérialisation.

Définitions :

La sérialisation est le processus de conversion d’un objet ou d’un groupe d’objets en séquence linéaire
d’octets pour stockage ou transmission à un autre emplacement. Elle consiste donc à stocker les valeurs des
attributs d’une instance d’un objet dans un fichier qui peut être au format binaire, xml ou Soap.

La désérialisation est le processus consistant à accepter des informations stockées et à recréer des objets
à partir de celles-ci.

EXERCICE N°1 : La sérialisation binaire.

1- Créer la classe Salaries

2- Pour que la classe soit sérialisable , il faut ajouter


<Serializable()> Public ...
L’attribut Serializable indique donc au compilateur que
tout ce que contient la classe peut être conservé dans
un fichier.
L’attribut NonSerialized peut être utilisé pour marquer les
membres de la classe qui ne doivent pas être conservés.
<NonSerialized()> Public ...

3- Dans les références, ajouter les espaces de noms :

4 - Créer l'interface graphique suivante :


Si on clique sur "Sérialiser" on enregistre dans le
fichier "Salarie.bin" les informations qui
ont été saisies.

'déclaration d'un fichier


Dim monFichier As Stream = File.Create(...

'déclaration du "sérialiseur"
Dim serialiser As New BinaryFormatter()

'sérialisation
serialiser.Serialize(...

'fermeture du ficher
monFichierSerialisation....

S. T. S. - I.G Deuxième année page 772

TP VB.NET N°10 : Sérialisation en VB.NET


Développement d'Applications Informatiques et Génie Logiciel Visual Basic.Net / TP N°10

5- Vérifier que le fichier "Salarie.bin" a bien été crée

6 - Si on clique sur "Désérialiser" on récupère dans le fichier les informations.

'déclaration d'un fichier


Dim monFichier As Stream = File.OpenRead(...
'déclaration du désérialisateur
Dim deserialiser As New BinaryFormatter()
'désérialisation
unSalarie = CType(deserialiser.Deserialize(...
'fermeture du fichier
monFichierSerialisation....

La méthode CType est utilisée pour la conversion du type d’objet Stream en type Salarie.

EXERCICE N°2 : La sérialisation d'une collection.

1- Dans les références, ajouter les espaces de noms :

2 - Créer l'interface graphique suivante :

3 -Utiliser la classe Salaries

4 - En faire une collection

Dim unSalarie As Salaries


Dim mesSalaries As New Microsoft.VisualBasic.Collection

5 - Ajouter quelques objets dans la collection

S. T. S. - I.G Deuxième année page 773


Développement d'Applications Informatiques et Génie Logiciel Visual Basic.Net / TP N°10

6 -Sérialiser la collection :

Dim fs As New FileStream(...


Dim formatter As New BinaryFormatter
formatter.Serialize(...
fs.Close()

7 -Désérialiser la collection :

Dim fs As New FileStream(...


Dim formatter As New BinaryFormatter
mesSalaries = CType(formatter.Deserialize(fs), Microsoft.VisualBasic.Collection)
fs.Close()

8 -Afficher la collection :

For Each ...


...
Next unSalarie

9 -Amélioration :

EXERCICE N°3 : La sérialisation XML.

La sérialisation XML ne sérialise que les champs publics et les valeurs des propriétés d’un objet (si elles ne
sont pas en lecture seule) dans un flux XML. La sérialisation n’inclut pas d’informations de type.

1- Dans les références, ajouter les espaces de noms :

S. T. S. - I.G Deuxième année page 774


Développement d'Applications Informatiques et Génie Logiciel Visual Basic.Net / TP N°10

2- Créer une nouvelle classe "Salaries" avec


des propriétés (deux méthodes d'accès aux valeurs
privées des champs).

Private UnNom As String

Public Property Nom() As String


Get
Nom = Me.UnNom
End Get
Set(ByVal value As String)
Me.UnNom = value
End Set
End Property

3- Créer une constructeur sans paramètre.

Sub New()

End Sub

4- Créer L'interface graphique suivante :

5- Sérialisation XML :

'ouverture d'un fichier en écriture


Dim objStreamWriter As New StreamWriter(...
'création d'un sérialiseur XML
Dim x As New XmlSerializer(unSalarie.GetType)
'on sérialise l'objet
x.Serialize(...
'on ferme le fichier
objStreamWriter....

S. T. S. - I.G Deuxième année page 775


Développement d'Applications Informatiques et Génie Logiciel Visual Basic.Net / TP N°10

6- Vérifier le fichier XML :

7- Désérialisation XML :

'ouverture d'un fichier en lecture


Dim objStreamReader As New StreamReader(...
'création d'un sérialiseur XML
Dim x As New XmlSerializer(unSalarie.GetType)
'on désérialise l'objet
unSalarie = x.Deserialize(objStreamReader)
'on ferme le fichier
objStreamReader....

S. T. S. - I.G Deuxième année page 776

Вам также может понравиться