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#

Sie kรถnnen der obigen Ausgabe entnehmen, 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.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: