Sauvegarde et restauration des objets C# : sérialisation et désérialisation
La sérialisation stocke les données dans un format portable, ce qui facilite le transfert d'objets entre différentes applications, systèmes ou machines.
Pour sérialiser un objet, vous devez utiliser la balise d'attribut [Serializable]
et inclure un constructeur sans paramètre. De plus, les attributs [XmlIgnore]
et [JsonIgnore]
peuvent être utilisés pour exclure des attributs ou des champs spécifiques.
Exemple
Considérez ce qui suit SomeClass
:
[Serializable] public class SomeClass { public string someProperty { get; set; } } SomeClass object1 = new SomeClass { someProperty = "someString" };
Enregistrer dans un fichier
Sérialisation binaire :
BinaryFormatter binaryFormatter = new BinaryFormatter(); using (Stream stream = File.Create("object1.bin")) { binaryFormatter.Serialize(stream, object1); }
Sérialisation XML :
XmlSerializer serializer = new XmlSerializer(typeof(SomeClass)); using (TextWriter writer = new StreamWriter("object1.xml")) { serializer.Serialize(writer, object1); }
JSONSérialisation :
using (StreamWriter writer = new StreamWriter("object1.json")) { writer.Write(JsonConvert.SerializeObject(object1)); }
Récupérer à partir de fichiers
Désérialisation binaire :
BinaryFormatter binaryFormatter = new BinaryFormatter(); using (Stream stream = File.OpenRead("object1.bin")) { object1 = (SomeClass)binaryFormatter.Deserialize(stream); }
Désérialisation XML :
XmlSerializer serializer = new XmlSerializer(typeof(SomeClass)); using (TextReader reader = new StreamReader("object1.xml")) { object1 = (SomeClass)serializer.Deserialize(reader); }
Désérialisation JSON (JsonDesérialisation) :
using (StreamReader reader = new StreamReader("object1.json")) { object1 = JsonConvert.DeserializeObject<SomeClass>(reader.ReadToEnd()); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!