Serialisierung und Deserialisierung in C# mit Beispiel

Serialisierung und Deserialisierung in C#

Das Konzept der Serialisierung und Deserialisierung wird immer dann verwendet, wenn Daten zu Objekten von einer Anwendung an eine andere gesendet werden müssen. Die Serialisierung wird verwendet, um Anwendungsdaten in eine Datei zu exportieren. Die Zielanwendung nutzt dann die Deserialisierung, um die Daten zur weiteren Verwendung aus der Anwendung zu extrahieren.

Serialisierung ist ein Konzept, bei dem C#-Klassenobjekte in Dateien geschrieben oder serialisiert werden. Nehmen wir an, Sie hätten eine C#-Klasse namens Tutorial. Und die Klasse hat zwei Eigenschaften: ID und Tutorials-Name.

Mithilfe der Serialisierung können die Dateneigenschaften der Tutorial-Klasse direkt in eine Datei geschrieben werden. Mithilfe der Deserialisierung werden die Daten aus der Datei gelesen und das Tutorial-Objekt erneut erstellt.

So serialisieren Sie ein Objekt in C#

Schauen wir uns ein Beispiel an, wie wir dies erreichen können.

In unserem Beispiel führen wir die folgenden allgemeinen Schritte im Code aus

  1. Erstellen Sie eine Klasse namens Tutorial, die über zwei Eigenschaften verfügt, nämlich ID und Name
  2. Anschließend erstellen wir ein Objekt aus der Klasse und weisen der ID-Eigenschaft den Wert „1“ und der Namenseigenschaft den Wert „.Net“ zu.
  3. Anschließend verwenden wir die Serialisierung, um das obige Objekt in eine Datei namens „Example.txt“ zu serialisieren
  4. Schließlich werden wir die Deserialisierung verwenden, um das Objekt aus der Datei zu deserialisieren und die Werte in der Konsole anzuzeigen.


Geben Sie den folgenden Code in die Datei program.cs der Konsolenanwendung ein.

Schritt 1) Fügen Sie die Klasse hinzu.

Der erste Schritt besteht darin, die Klasse hinzuzufügen, die für die Serialisierung verwendet wird

Serialisieren Sie ein Objekt in C#

Code-Erklärung:-

  1. Die Klasse, die serialisiert werden muss, muss über das Attribut [Serializable] verfügen. Dies ist ein Schlüsselwort in C#. Dieses Schlüsselwort wird dann an die Tutorial-Klasse angehängt. Wenn Sie dieses Attribut nicht erwähnen, erhalten Sie beim Versuch, die Klasse zu serialisieren, eine Fehlermeldung.
  2. Als nächstes folgt die Definition der Klasse, die serialisiert werden soll. Hier definieren wir eine Klasse namens „Tutorial“ und stellen zwei Eigenschaften bereit, eine ist „ID“ und die andere ist „Name“.

Schritt 2) Erstellen Sie das Objekt.

In diesem Schritt erstellen wir zunächst das Objekt der Tutorial-Klasse und serialisieren es in die Datei „Example.txt“.

Serialisieren Sie ein Objekt in C#

Code-Erklärung:-

  1. Zuerst erstellen wir ein Objekt der Tutorial-Klasse. Anschließend weisen wir der ID den Wert „1“ und der Namenseigenschaft „.net“ zu.
  2. Anschließend verwenden wir die Formatierungsklasse, mit der das Objekt serialisiert oder in ein Binärformat konvertiert wird. Die Daten in der Datei bei der Serialisierung erfolgen im Binärformat. Als nächstes erstellen wir ein Dateistreamobjekt. Das Dateistream-Objekt wird verwendet, um die Datei „Example.txt“ zu Schreibzwecken zu öffnen. Die Schlüsselwörter FileMode.Create und FileMode.Write werden verwendet, um ausdrücklich darauf hinzuweisen, dass die Datei zum Schreiben geöffnet werden soll.
  3. Abschließend verwenden wir die Methode Serialize, um die Binärdaten in die Datei zu übertragen. Wir schließen dann den Stream, seit dem Schreiben Betrieb ist komplett.

Schritt 3) Verwenden Sie Deserialisierung.

Um schließlich sicherzustellen, dass die Daten in der Datei vorhanden sind, deserialisieren wir das Objekt mithilfe der Deserialisierung aus der Datei.

Serialisieren Sie ein Objekt in C#

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();
  }
 }
}

Code-Erklärung:-

  1. Wir erstellen das Objekt „Strom” um die Datei Beispiel.txt im schreibgeschützten Modus zu öffnen.
  2. Anschließend verwenden wir die Formatierungsklasse, die zum Deserialisieren des Objekts verwendet wird, das in der Datei „Example.txt“ gespeichert ist. Das zurückgegebene Objekt wird auf das Objekt objnew gesetzt.
  3. Abschließend zeigen wir der Konsole die Eigenschaften des Objekts „objnew“ mithilfe der Eigenschaften „ID“ und „name“ an.

Wenn der obige Code festgelegt ist und das Projekt mit ausgeführt wird Visual Studio, erhalten Sie die folgende Ausgabe.

Ausgabe:-

Serialisieren Sie ein Objekt in C#

Aus der obigen Ausgabe können Sie ersehen, dass die Werte aus der Datei ordnungsgemäß deserialisiert und in der Konsole angezeigt wurden.

Zusammenfassung

Die Serialisierung wird verwendet, um Klassenobjekte in Dateien zu schreiben.

Die De-Serialisierung wird verwendet, um die Objekte aus der Datei wiederherzustellen.