Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Sérialisation et désérialisation en C # avec exemple

Sérialisation et désérialisation en C#

Le concept de sérialisation et de désérialisation est utilisé chaque fois que des données relatives à des objets doivent être envoyées d'une application à une autre. La sérialisation est utilisée pour exporter des données d'application dans un fichier. L'application de destination utilise ensuite la désérialisation pour extraire les données de l'application pour une utilisation ultérieure.

La sérialisation est un concept dans lequel les objets de classe C# sont écrits ou sérialisés dans des fichiers. Supposons que vous ayez une classe C # appelée Tutoriel. Et la classe a 2 propriétés d'ID et de nom de didacticiels.

La sérialisation peut être utilisée pour écrire directement les propriétés de données de la classe Tutorial dans un fichier. La désérialisation est utilisée pour lire les données du fichier et reconstruire l'objet Tutoriel.

Comment sérialiser un objet en C#

Examinons un exemple de la manière dont nous pouvons y parvenir.

Dans notre exemple, nous allons effectuer les étapes de haut niveau ci-dessous dans le code

  1. Créez une classe appelée Tutorial qui a 2 propriétés, à savoir ID et Name
  2. Nous allons ensuite créer un objet à partir de la classe et attribuer la valeur "1" à la propriété ID et la valeur ".Net" à la propriété name.
  3. Nous utiliserons ensuite la sérialisation pour sérialiser l'objet ci-dessus dans un fichier appelé Example.txt
  4. Enfin, nous utiliserons la désérialisation pour désérialiser l'objet du fichier et afficher les valeurs dans la console.

Entrez le code ci-dessous dans le fichier program.cs de l'application console.

Étape 1) Ajoutez la classe.
La première étape consiste à ajouter la classe qui sera utilisée pour la sérialisation

Explication du code :-

  1. La classe qui doit être sérialisée doit avoir l'attribut [Serializable]. Il s'agit d'un mot-clé en C#. Ce mot-clé est ensuite attaché à la classe Tutoriel. Si vous ne mentionnez pas cet attribut, vous obtiendrez une erreur lorsque vous tenterez de sérialiser la classe.
  2. Vient ensuite la définition de la classe qui sera sérialisée. Ici, nous définissons une classe appelée "Tutorial" et fournissons 2 propriétés, l'une est "ID" et l'autre est "Name".

Étape 2) Créez l'objet.
Dans cette étape, nous allons d'abord créer l'objet de la classe Tutorial et le sérialiser dans le fichier appelé Example.txt

Explication du code :-

  1. Tout d'abord, nous créons un objet de la classe Tutorial. Nous attribuons ensuite la valeur "1" à ID et ".net" à la propriété name.
  2. Nous utilisons ensuite la classe de formatage qui est utilisée pour sérialiser ou convertir l'objet dans un format binaire. Les données du fichier en sérialisation se font au format binaire. Ensuite, nous créons un objet de flux de fichiers. L'objet file stream est utilisé pour ouvrir le fichier Example.txt à des fins d'écriture. Les mots clés FileMode.Create et FileMode.Write sont utilisés pour mentionner spécifiquement que le fichier doit être ouvert à des fins d'écriture.
  3. Enfin, nous utilisons la méthode Serialize pour transférer les données binaires vers le fichier. Nous fermons ensuite le flux, puisque l'opération d'écriture est terminée.

Étape 3) Utilisez la désérialisation.
Enfin, pour nous assurer que les données sont présentes dans le fichier, nous utilisons la désérialisation pour désérialiser l'objet du fichier.

using System;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  [Serializable]
  class Tutorial
  {
  public int ID;
  public String Name;
   static void Main(string[] args)
   {
    Tutorial obj = new Tutorial();
    obj.ID = 1;
    obj.Name = ".Net";

    IFormatter formatter = new BinaryFormatter();
    Stream stream = new FileStream(@"E:\ExampleNew.txt",FileMode.Create,FileAccess.Write);

    formatter.Serialize(stream, obj);
    stream.Close();

    stream = new FileStream(@"E:\ExampleNew.txt",FileMode.Open,FileAccess.Read);
    Tutorial objnew = (Tutorial)formatter.Deserialize(stream);

    Console.WriteLine(objnew.ID);
    Console.WriteLine(objnew.Name);

    Console.ReadKey();
  }
 }
}

Explication du code :-

  1. Nous créons l'objet "stream" pour ouvrir le fichier Example.txt en mode lecture seule.
  2. Nous utilisons ensuite la classe de formatage qui sert à désérialiser l'objet, qui est stocké dans le fichier Example.txt. L'objet renvoyé est défini sur l'objet objnew.
  3. Enfin, nous affichons les propriétés de l'objet "objnew" à la console en utilisant les propriétés "ID" et "name".

Lorsque le code ci-dessus est défini et que le projet est exécuté à l'aide de Visual Studio, vous obtenez la sortie ci-dessous.

Sortie :-

Vous pouvez voir dans la sortie ci-dessus que les valeurs du fichier ont été correctement désérialisées et affichées dans la console.

Résumé

La sérialisation est utilisée pour écrire des objets de classe dans des fichiers.

La désérialisation est utilisée pour récupérer les objets du fichier.


Langue C

  1. Classe et objet C#
  2. Classe abstraite et méthode C#
  3. Classe partielle C# et méthode partielle
  4. Classe et méthode scellées C#
  5. Classe de fichier Java
  6. Opérateurs en C++ avec exemple :qu'est-ce que c'est, les types et les programmes
  7. Différence entre structure et classe :expliquée avec un exemple C++
  8. Tutoriel de classe abstraite C # avec exemple :Qu'est-ce que l'abstraction ?
  9. Java BufferedReader :comment lire un fichier en Java avec un exemple