Sommaire

Travailler avec DataContractSerializer

1. Introduction

Le contexte d’utilisation de DataContract est le recours à des services de type WCF qui suppose un type de sérialisation spécifique (en JSON ou XML notamment). En français, on parle parfois de « contrat de données ». On spécifie les classes concernées par la sérialisation et ses membres à sérialiser avec les deux attributs suivants :

  • [DataContract]

  • [DataMember]

2. Exemple d’utilisation

Ci-dessous, un premier exemple d’utilisation :

[DataContract]  
public class Individu  
{  
  private string prénom;  
  private int âge;  
  
  [DataMember]  
  public string Prénom  
  {  
    get { return prénom; }  
    set { prénom = value; }  
  }   
  
  [DataMember]  
  public int Age  
  {  
    get { return âge; }  
    set { âge = value; }  
  }  
}

Ensuite, on définit notre objet de sérialisation par contrat de données ainsi qu’un flux de type MemoryStream :

DataContractSerializer serialiseur = new  
DataContractSerializer(typeof(Individu));  
MemoryStream stream = new MemoryStream();

On procède alors à une sérialisation :

serialiseur.WriteObject(stream , individu);  

Puis à une désérialisation : ...