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 C# : Exemple Pratique

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

La sérialisation et la désérialisation sont essentielles lorsque les données d'objet doivent circuler entre applications ou persister à travers les sessions. En C#, la sérialisation écrit l'état d'un objet sur un support de stockage — couramment un fichier — tandis que la désérialisation reconstruit l'objet à partir de cette représentation stockée.

Considérez une classe simple, Tutoriel, qui contient deux propriétés : ID et Name. En sérialisant une instance de cette classe dans un fichier, nous pouvons plus tard lire le fichier et recréer le même objet avec ses données d'origine intactes.

Comment Sérialiser un Objet en C#

Voici une procédure pas à pas qui démontre le processus dans une application console.

  1. Créer une classe Tutoriel avec les propriétés ID et Name.
  2. Instancier la classe, en assignant ID = 1 et Name = ".Net".
  3. Sérialiser l'objet dans un fichier nommé Exemple.txt.
  4. Désérialiser l'objet depuis le fichier et afficher ses valeurs sur la console.

Collez le code suivant dans votre fichier Program.cs.

Étape 1) Ajoutez la classe. La première étape est d'ajouter la classe qui sera sérialisée.

Sérialisation et Désérialisation C# : Exemple Pratique

Explication du Code :

  1. La classe doit être marquée avec l'attribut [Serializable] ; sinon la sérialisation échouera.
  2. Définir la classe Tutoriel avec deux champs : int ID et string Name.

Étape 2) Créer l'objet et le sérialiser. À cette étape, nous instancions l'objet Tutoriel et l'écrivons dans Exemple.txt.

Sérialisation et Désérialisation C# : Exemple Pratique

Explication du Code :

  1. Créer une instance de Tutoriel et définir ID = 1 et Name = ".Net".
  2. Instancier un BinaryFormatter (note : BinaryFormatter est obsolète dans .NET 5+ ; envisagez System.Text.Json ou XmlSerializer pour le code de production).
  3. Ouvrir un FileStream en FileMode.Create et FileAccess.Write pour écrire les données binaires.
  4. Appeler formatter.Serialize pour écrire l'objet dans le flux, puis fermer le flux.

Étape 3) Désérialiser l'objet. Finalement, relisez les données depuis le fichier pour vérifier le processus.

Sérialisation et Désérialisation C# : Exemple Pratique

using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
namespace DemoApplication {
    [Serializable]
    class Tutoriel {
        public int ID;
        public string Name;
        static void Main(string[] args) {
            Tutoriel obj = new Tutoriel();
            obj.ID = 1;
            obj.Name = ".Net";
            IFormatter formatter = new BinaryFormatter();
            Stream stream = new FileStream("E:\\ExempleNouveau.txt", FileMode.Create, FileAccess.Write);
            formatter.Serialize(stream, obj);
            stream.Close();
            stream = new FileStream("E:\\ExempleNouveau.txt", FileMode.Open, FileAccess.Read);
            Tutoriel objnew = (Tutoriel)formatter.Deserialize(stream);
            Console.WriteLine(objnew.ID);
            Console.WriteLine(objnew.Name);
            Console.ReadKey();
        }
    }
}

Explication du Code :

  1. Ouvrir le fichier en mode lecture.
  2. Désérialiser les données binaires en une instance de Tutoriel.
  3. Afficher ID et Name sur la console.

L'exécution du programme dans Visual Studio produit la sortie suivante :

Sortie :

Sérialisation et Désérialisation C# : Exemple Pratique

Comme montré, les valeurs ont été correctement récupérées depuis le fichier.

Résumé

La sérialisation écrit les données d'objet dans un fichier, tandis que la désérialisation relit ces données dans un objet. Cette technique fondamentale sous-tend de nombreux scénarios d'échange de données .NET.

Langue C

  1. Classes et objets C# : Fondations pour une POO robuste
  2. Maîtriser les classes et méthodes abstraites C# : Guide pratique
  3. Comprendre les classes et méthodes partielles C#
  4. Maîtriser les classes et méthodes sealed en C# : Quand les utiliser, exemples clairs et sécurité du code
  5. Maîtriser les opérations sur les fichiers Java avec java.io – Création, lecture, écriture et suppression
  6. Opérateurs C++ expliqués : Types, exemples et programmes d'exemple
  7. Struct vs Class en C++ : Différences Clés, Syntaxe et Cas d'Utilisation Optimaux
  8. Classes Abstraites C# : Tutoriel Pratique avec Exemples de Code
  9. Lecture de Fichiers en Java avec BufferedReader – Guide Pratique avec Exemples