Sommaire

Introduction et définitions

La sérialisation consiste à compacter un ensemble de données pour faciliter leur transport (via une requête HTTP, par exemple) ou leur persistance en base de données.

L’opération inverse s’appelle la désérialisation qui consiste en une sorte de décodage depuis une forme optimisée vers une forme « utilisable ».

Le mécanisme de sérialisation/désérialisation est donc un mécanisme de codage/encodage des données. Pour prendre un exemple général : on peut imaginer une application A qui communique avec une application B. L’application A est codée en C# : avant communication avec l’application B, des objets sont sérialisés sous une forme binaire avant envoi vers l’application B. Quand l’application A reçoit des messages binaires, ils sont désérialisés et convertis selon un modèle objet en C#.

On sérialise les données d’un objet, donc typiquement les propriétés de classes d’une instance : la sérialisation se désintéresse des méthodes de la classe. Même concernant les propriétés, on ne sérialise pas forcément toutes les propriétés, mais seulement celles qui nous sont utiles. Il s’agit parfois de minimiser la taille de l’objet sérialisé qui transite ...