Vous êtes sur la page 1sur 3

Exécutée par Common Language Runtime, la serialisation est le processus de conversion des

informations d'état d'une instance d'objet en une forme binaire ou textuelle pour persister dans un
support de stockage ou transporté sur un réseau

afin de mettre a jour un objet avec ses memes informations.

Le framework .NET propose deux méthodes de sérialisation, à savoir la sérialisation binaire et la


sérialisation XML.

La sérialisation binaire préserve l'état de l'objet entre les différentes invocations d'une application en
préservant la fidélité de type.

Fonctionnement de la sérialisation
Illustration de la sérialisation :

Usages de la sérialisation

La sérialisation permet au développeur d’enregistrer l’état d’un objet et de le recréer


en fonction des besoins, en fournissant un stockage d’objets ainsi qu’un échange de
données. Grâce à la sérialisation, un développeur peut effectuer des actions telles que
:

 Envoi de l’objet à une application distante à l’aide d’un service web


 Passage d’un objet d’un domaine à un autre
 Passage d’un objet via un pare-feu en tant que chaîne JSON ou XML
 Gestion des informations spécifiques à la sécurité ou à l’utilisateur dans les applications

Sérialisation binaire et XML


L’espace System.Runtime.Serialization de noms contient des classes pour la
sérialisation binaire et XML et la désérialisation.

La sérialisation binaire utilise l’encodage binaire pour produire une sérialisation


compacte qui peut servir notamment aux flux réseau par socket ou stockage. Dans la
sérialisation binaire, tous les membres, y compris en lecture seule, sont sérialisés et
les performances sont améliorées.

Comment Rendre un objet sérialisable

Pour la sérialisation binaire ou XML, vous devez :

 Objet à sérialiser
 Flux contenant l’objet sérialisé
 Instance System.Runtime.Serialization.Formatter

Appliquez l’attribut SerializableAttribute à un type pour indiquer que les instances du


type peuvent être sérialisées. Une exception est levée si vous tentez de sérialiser, mais
que le type n’a pas l’attribut SerializableAttribute .

Pour empêcher la sérialisation d’un champ, appliquez


l’attribut NonSerializedAttribute . Si un champ d’un type sérialisable contient un
pointeur, un handle ou une autre structure de données propre à un environnement
particulier et qu’il n’est pas possible de le reconstituer de manière significative dans
un autre environnement, vous pouvez le rendre non sérialisable.

Si une classe sérialisée contient des références à des objets d’autres classes marqués
par SerializableAttribute, ces objets seront également sérialisés.

Notion de Sérialisation de base et sérialisation personnalisée

La sérialisation binaire et XML peut être effectuée de deux façons, de base et


personnalisée.

La sérialisation de base utilise .NET pour sérialiser automatiquement l’objet. La seule


exigence est que la classe a
l’attribut SerializableAttribute appliqué. NonSerializedAttribute peut être utilisé pour
empêcher que certains champs ne soient sérialisés.

Quand vous utilisez la sérialisation de base, le contrôle de version des objets peut
créer des problèmes. Vous pouvez utiliser la sérialisation personnalisée quand les
problèmes de contrôle de version sont importants. La sérialisation de base est le
moyen le plus simple d’effectuer la sérialisation, mais elle ne fournit pas beaucoup de
contrôle sur le processus.

Dans la sérialisation personnalisée, vous pouvez spécifier exactement quels objets


sont sérialisés et de quelle façon. La classe doit être marquée SerializableAttribute et
implémenter l’interface ISerializable. Si vous souhaitez que votre objet soit désérialisé
de manière personnalisée, utilisez également un constructeur personnalisé.

Notion de Sérialisation du concepteur


La sérialisation du concepteur est une forme particulière de sérialisation qui implique
le type de persistance d’objets associé aux outils de développement. La sérialisation
du concepteur est le processus qui consiste à convertir un graphique d’objet en un
fichier source utilisable ultérieurement pour récupérer le graphique d’objet. Un fichier
source peut contenir du code, des balises ou même des tables SQL.

Vous aimerez peut-être aussi