Maison >développement back-end >C++ >Comment sérialiser et désérialiser des objets en C# ?

Comment sérialiser et désérialiser des objets en C# ?

DDD
DDDoriginal
2025-01-23 11:42:11288parcourir

How to Serialize and Deserialize Objects in C#?

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 :

<code class="language-csharp">[Serializable]
public class SomeClass
{
    public string someProperty { get; set; }
}

SomeClass object1 = new SomeClass { someProperty = "someString" };</code>

Enregistrer dans un fichier

  • Sérialisation binaire :

    <code class="language-csharp">  BinaryFormatter binaryFormatter = new BinaryFormatter();
    
      using (Stream stream = File.Create("object1.bin"))
      {
          binaryFormatter.Serialize(stream, object1);
      }</code>
  • Sérialisation XML :

    <code class="language-csharp">  XmlSerializer serializer = new XmlSerializer(typeof(SomeClass));
    
      using (TextWriter writer = new StreamWriter("object1.xml"))
      {
          serializer.Serialize(writer, object1);
      }</code>
  • JSONSérialisation :

    <code class="language-csharp">  using (StreamWriter writer = new StreamWriter("object1.json"))
      {
          writer.Write(JsonConvert.SerializeObject(object1));
      }</code>

Récupérer à partir de fichiers

  • Désérialisation binaire :

    <code class="language-csharp">  BinaryFormatter binaryFormatter = new BinaryFormatter();
    
      using (Stream stream = File.OpenRead("object1.bin"))
      {
          object1 = (SomeClass)binaryFormatter.Deserialize(stream);
      }</code>
  • Désérialisation XML :

    <code class="language-csharp">  XmlSerializer serializer = new XmlSerializer(typeof(SomeClass));
    
      using (TextReader reader = new StreamReader("object1.xml"))
      {
          object1 = (SomeClass)serializer.Deserialize(reader);
      }</code>
  • Désérialisation JSON (JsonDesérialisation) :

    <code class="language-csharp">  using (StreamReader reader = new StreamReader("object1.json"))
      {
          object1 = JsonConvert.DeserializeObject<SomeClass>(reader.ReadToEnd());
      }</code>

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn