« Programmation C sharp/La sérialisation » : différence entre les versions

Contenu supprimé Contenu ajouté
Contenu
+ XML
Ligne 4 :
La sérialisation est un procédé d'[[Programmation C sharp/Entrées-sorties|entrée-sortie]] permettant de sauvegarder et recharger l'état d'un [[Programmation C sharp/Les_objets|objet]]. Cette fonctionnalité permet de faire abstraction du format de fichier utilisé. Celui-ci dépend de l'outil de sérialisation utilisé.
 
L'état d'un objet correspond à l'ensemble des valeurs de ses attributschamps. Les proriétés sont calculées en fonction des attributschamps, et le code des méthodes ne change pas au cours de l'exécution.
 
== Attributs ==
Ligne 18 :
}
 
L'[[Programmation_C_sharp/Attributs|attribut]] <tt>System.NonSerializedAttribute</tt> marque les attributschamps qu'il ne faut pas enregistrer. C'est le cas des attributschamps dont on peut retrouver la valeur par calcul, par exemple.
 
Exemple :
Ligne 46 :
:Cette méthode retourne l'objet lu depuis le flux d'[[Programmation_C_sharp/Entrées-sorties|entrée-sortie]] spécifié.
 
Les [[Programmation C sharp/Héritage de classes|classes dérivées]] définissent un format concret de sérialisation. :
* La classe System.Runtime.Serialization.Formatters.Binary.BinaryFormatter permet de sérialiser dans un format binaire,
* La classe System.Runtime.Serialization.Formatters.Soap.SoapFormatter permet de sérialiser au format [[w:Simple Object Access Protocol|SOAP]].
 
==== Format binaireXML ====
La classe <tt>System.Xml.Serialization.XmlSerializer</tt> permet de sérialiser au format XML, et ne nécessite pas l'attribut <tt>Serializable</tt>. Elle ne dérive pas de la classe <tt>System.Runtime.Serialization.Formatter</tt>, et possède les méthodes suivantes :
 
void Serialize(
==== Format SOAP ====
System.IO.Stream stream,
object o);
void Serialize(
System.IO.TextWriter textWriter,
object o);
void Serialize(
System.Xml.XmlWriter xmlWriter,
object o);
:Ces méthodes enregistrent l'objet <tt>graph</tt> dans le flux d'[[Programmation_C_sharp/Entrées-sorties|entrée-sortie]] spécifié.
 
object Deserialize(
=== Format XML ===
System.IO.Stream stream);
object Deserialize(
System.IO.TextReader textReader);
object Deserialize(
System.Xml.XmlReader xmlReader);
:Ces méthodes retournent l'objet lu depuis le flux d'[[Programmation_C_sharp/Entrées-sorties|entrée-sortie]] spécifié.