Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C# Serialisierung & Deserialisierung: Ein praktisches Beispiel

Serialisierung & Deserialisierung in C#

Serialisierung und Deserialisierung sind essenziell, wenn Objektdaten zwischen Anwendungen ausgetauscht oder über Sitzungen hinweg persistiert werden müssen. In C# schreibt Serialisierung den Zustand eines Objekts in ein Speichermedium – üblicherweise eine Datei – während Deserialisierung das Objekt aus dieser gespeicherten Repräsentation rekonstruiert.

Betrachten Sie eine einfache Klasse Tutorial, die zwei Eigenschaften hält: ID und Name. Durch Serialisieren einer Instanz dieser Klasse in eine Datei können wir die Datei später lesen und dasselbe Objekt mit seinen ursprünglichen Daten wiederherstellen.

Objekt in C# serialisieren

Nachfolgend ein Schritt-für-Schritt-Walkthrough, der den Prozess in einer Konsolenanwendung demonstriert.

  1. Tutorial-Klasse mit ID- und Name-Eigenschaften erstellen.
  2. Klasse instanziieren, ID = 1 und Name = ".Net" zuweisen.
  3. Objekt in Datei Example.txt serialisieren.
  4. Objekt aus Datei deserialisieren und seine Werte auf der Konsole anzeigen.

Fügen Sie folgenden Code in Ihre Program.cs-Datei ein.

Schritt 1) Klasse hinzufügen. Der erste Schritt ist das Hinzufügen der zu serialisierenden Klasse.

C# Serialisierung & Deserialisierung: Ein praktisches Beispiel

Code-Erklärung:

  1. Die Klasse muss mit dem [Serializable]-Attribut markiert sein; andernfalls schlägt Serialisierung fehl.
  2. Tutorial-Klasse mit zwei Feldern definieren: int ID und string Name.

Schritt 2) Objekt erstellen und serialisieren. In diesem Schritt instanziieren wir das Tutorial-Objekt und schreiben es in Example.txt.

C# Serialisierung & Deserialisierung: Ein praktisches Beispiel

Code-Erklärung:

  1. Instanz von Tutorial erstellen und ID = 1, Name = ".Net" setzen.
  2. BinaryFormatter instanziieren (Hinweis: BinaryFormatter ist in .NET 5+ veraltet; für Produktionscode System.Text.Json oder XmlSerializer in Betracht ziehen).
  3. FileStream im FileMode.Create und FileAccess.Write öffnen, um Binärdaten zu schreiben.
  4. formatter.Serialize aufrufen, um Objekt in den Stream zu schreiben, dann Stream schließen.

Schritt 3) Objekt deserialisieren. Schließlich Daten aus der Datei zurücklesen, um den Prozess zu verifizieren.

C# Serialisierung & Deserialisierung: Ein praktisches Beispiel

using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
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();
        }
    }
}

Code-Erklärung:

  1. Datei im Lesemodus öffnen.
  2. Binärdaten zurück in eine Tutorial-Instanz deserialisieren.
  3. ID und Name auf der Konsole ausgeben.

Programmausführung in Visual Studio erzeugt folgende Ausgabe:

Ausgabe:

C# Serialisierung & Deserialisierung: Ein praktisches Beispiel

Wie gezeigt, wurden die Werte korrekt aus der Datei abgerufen.

Zusammenfassung

Serialisierung schreibt Objektdaten in eine Datei, Deserialisierung liest diese Daten zurück in ein Objekt. Diese fundamentale Technik ist die Basis vieler .NET-Datenaustausch-Szenarien.

C Sprache

  1. C# Klassen & Objekte: Fundamente für robustes OOP
  2. C# Abstrakte Klassen & Methoden meistern: Praktischer Leitfaden
  3. C# Partielle Klassen und Methoden verstehen
  4. Versiegelte Klassen und Methoden in C# meistern
  5. Java-Dateioperationen mit java.io meistern – Erstellen, Lesen, Schreiben & Löschen
  6. C++ Operatoren erklärt: Typen, Beispiele und Beispielprogramme
  7. C++ Struct vs. Class: Wichtige Unterschiede, Syntax und beste Anwendungsfälle
  8. C# Abstrakte Klassen: Praktisches Tutorial mit Code-Beispielen
  9. Dateien in Java mit BufferedReader lesen – Praktischer Leitfaden mit Beispielen
  10. type() und isinstance() in Python verstehen: Praktische Beispiele