C# Language Rendre un objet sérialisable


Exemple

Ajoutez l'attribut [Serializable] pour marquer un objet entier pour la sérialisation binaire:

[Serializable]
public class Vector
{
    public int X;
    public int Y;
    public int Z;

    [NonSerialized]
    public decimal DontSerializeThis;

    [OptionalField]
    public string Name;
}

Tous les membres seront sérialisés à moins que nous ne les désactivions explicitement en utilisant l'attribut [NonSerialized] . Dans notre exemple, X , Y , Z et Name sont tous sérialisés.

Tous les membres doivent être présents lors de la désérialisation à moins qu’ils ne soient marqués avec [NonSerialized] ou [OptionalField] . Dans notre exemple, X , Y et Z sont tous requis et la désérialisation échouera s’ils ne sont pas présents dans le flux. DontSerializeThis sera toujours défini sur la default(decimal) (qui est 0). Si Name est présent dans le flux, alors il sera mis à cette valeur, sinon il sera défini sur default(string) (qui est nul). Le but de [OptionalField] est de fournir un peu de tolérance de version.