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

Contenu supprimé Contenu ajouté
m Formatage, ajout de code
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
 
Ligne 9 :
 
Exemple :
<sourcesyntaxhighlight lang="csharp">
[Serializable]
class Facture
Ligne 17 :
public double TotalTTC;
}
</syntaxhighlight>
</source>
 
L'[[Programmation C sharp/Attributs|attribut]] <code>System.NonSerializedAttribute</code> marque les champs qu'il ne faut pas enregistrer. C'est le cas des champs dont on peut retrouver la valeur par calcul, par exemple.
 
Exemple :
<sourcesyntaxhighlight lang="csharp">
[Serializable]
class Facture
Ligne 32 :
public double TotalTTC; // = TotalHT * (1 + taux_TVA/100)
}
</syntaxhighlight>
</source>
 
Quand la classe évolue, de nouveaux champs sont ajoutés à la classe, d'autres sont retirés.
Ligne 38 :
 
Exemple :
<sourcesyntaxhighlight lang="csharp">
[Serializable]
class Facture
Ligne 51 :
public string AdresseLivraison; // Nouveau champ
}
</syntaxhighlight>
</source>
Dans cet exemple, la classe Facture permettra de lire des fichiers d'objets <code>Facture</code> contenant le champ <code>AdresseLivraison</code> ou non.
 
Ligne 115 :
Cette interface n'a qu'une méthode, invoquée lors de la sérialisation :
 
<sourcesyntaxhighlight lang="csharp">
void GetObjectData (
SerializationInfo info,
StreamingContext context )
</syntaxhighlight>
</source>
 
Mais la classe doit également comporter le constructeur suivant, invoqué lors de la désérialisation :
Ligne 132 :
 
Exemple :
<sourcesyntaxhighlight lang="csharp">
[Serializable]
public class Personne : ISerializable
Ligne 159 :
}
}
</syntaxhighlight>
</source>