29/10/2009

Serialisation/deserialsation de données XML avec WCF DataContractSerializer

Dans cette exemple, j'ai une liste générique de personne définit comme un DataContract WCF, que je serialise dans un fichier puis l'inverse.

[DataContract]
public class Person
{
[DataMember]
public string Nom {get;set;}
[DataMember]
public string Prenom { get; set; }
[DataMember]
public int Age { get; set; }
}


Serialisation de données
FileStream writer = new FileStream(@"c:\temp\test.xml", FileMode.Create);
DataContractSerializer ser = new DataContractSerializer(typeof(List));
ser.WriteObject(writer, lstPers);
writer.Close();

Desrialisation de données 
FileStream reader = new FileStream(@"c:\temp\test.xml", FileMode.Open);
DataContractSerializer ser = new DataContractSerializer(typeof(List));
lstPers = (List)ser.ReadObject(reader);
reader.Close();

2 commentaires:

Fred Berton a dit…

Il existe une autre solution qui génere des fichiers moins gros.
http://fberton.blogspot.com/2010/01/jsonnet-une-serializer-plus-rapide-que.html
Je n'ai pas encore vérifié.

Fred Berton a dit…

J'ai maintenant vérifier, et éffectivement c'est beaucoup plus éfficace au moins sur le taille des fichiers. Dans mon exemple l'écart et de 30x moins gros !!!