Maison  >  Article  >  développement back-end  >  Comment gérer la sérialisation et la désérialisation d'objets dans le développement C#

Comment gérer la sérialisation et la désérialisation d'objets dans le développement C#

PHPz
PHPzoriginal
2023-10-10 18:07:44989parcourir

Comment gérer la sérialisation et la désérialisation dobjets dans le développement C#

Comment gérer la sérialisation et la désérialisation d'objets dans le développement C# nécessite des exemples de code spécifiques

Dans le développement C#, la sérialisation et la désérialisation d'objets sont des concepts très importants. La sérialisation convertit un objet dans un format pouvant être transmis sur le réseau ou stocké sur disque, tandis que la désérialisation reconvertit les données sérialisées en objet d'origine. Cet article explique comment gérer la sérialisation et la désérialisation des objets en C# et fournit des exemples de code spécifiques.

  1. Utilisez la bibliothèque Json.NET pour la sérialisation et la désérialisation

Json.NET est une bibliothèque tierce populaire qui permet une sérialisation et une désérialisation pratiques d'objets en C#. Tout d’abord, nous devons installer la bibliothèque Json.NET. Json.NET peut être installé dans Visual Studio via le gestionnaire de packages NuGet.

a) Exemple de sérialisation d'objet

L'exemple de code suivant montre comment sérialiser un objet Person en une chaîne JSON :

using Newtonsoft.Json;
using System;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public static void Main()
{
    Person person = new Person { Name = "John Doe", Age = 30 };
    string json = JsonConvert.SerializeObject(person);
    Console.WriteLine(json);
}

Dans cet exemple, nous utilisons la méthode JsonConvert.SerializeObject pour convertir l'objet Person en une chaîne JSON, et afficher les résultats via Console.WriteLine.

b) Exemple de désérialisation d'objet

L'exemple de code suivant montre comment désérialiser une chaîne JSON en un objet Person :

using Newtonsoft.Json;
using System;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public static void Main()
{
    string json = "{"Name":"John Doe","Age":30}";
    Person person = JsonConvert.DeserializeObject<Person>(json);
    Console.WriteLine(person.Name);
    Console.WriteLine(person.Age);
}

Dans cet exemple, nous utilisons la méthode JsonConvert.DeserializeObject pour convertir la chaîne JSON en objet Person et afficher le valeurs des propriétés Name et Age via Console.WriteLine.

  1. Utilisez BinaryFormatter pour la sérialisation et la désérialisation

En plus de la bibliothèque Json.NET, C# fournit également la classe BinaryFormatter, qui peut être utilisée pour sérialiser des objets dans des formats binaires et désérialiser des données binaires en objets. Voici un exemple de sérialisation et de désérialisation à l'aide de BinaryFormatter :

a) Exemple de sérialisation d'objet

L'exemple de code suivant montre comment sérialiser un objet Person en données binaires :

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable]
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public static void Main()
{
    Person person = new Person { Name = "John Doe", Age = 30 };

    BinaryFormatter formatter = new BinaryFormatter();
    MemoryStream stream = new MemoryStream();

    formatter.Serialize(stream, person);
    byte[] binaryData = stream.ToArray();

    stream.Close();

    Console.WriteLine(BitConverter.ToString(binaryData));
}

Dans cet exemple, nous créons un objet Person et le sérialisons dans un flux mémoire à l’aide de la méthode BinaryFormatter.Serialize. Ensuite, récupérez les données binaires via la méthode MemoryStream.ToArray et affichez-les sous forme de chaîne à l'aide de la méthode BitConverter.ToString.

b) Exemple de désérialisation d'objet

L'exemple de code suivant montre comment désérialiser des données binaires dans un objet Personne :

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable]
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public static void Main()
{
    string binaryDataString = "01-00-00-00-02-00-00-00-00-00-00-00-09-4A-6F-68-6E-20-44-6F-65-00-1E-00-00-00-00-00-00-00";
    byte[] binaryData = BitConverter.GetBytes(binaryDataString.Replace("-", ""));

    BinaryFormatter formatter = new BinaryFormatter();
    MemoryStream stream = new MemoryStream(binaryData);

    Person person = (Person)formatter.Deserialize(stream);
    stream.Close();

    Console.WriteLine(person.Name);
    Console.WriteLine(person.Age);
}

Dans cet exemple, nous utilisons la méthode BinaryFormatter.Deserialize pour désérialiser des données binaires dans un objet Personne et afficher les valeurs. ​​des propriétés Name et Age via Console.WriteLine.

Résumé

Grâce à cet article, nous avons appris à gérer la sérialisation et la désérialisation d'objets dans le développement C#. Nous avons utilisé la bibliothèque Json.NET et la classe BinaryFormatter pour effectuer respectivement des exemples de sérialisation et de désérialisation, et avons fourni des extraits de code spécifiques. Veuillez choisir la méthode appropriée pour gérer la sérialisation et la désérialisation des objets en fonction des besoins réels.

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