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
- Erstellen Sie eine Klasse namens Tutorial, die รผber zwei Eigenschaften verfรผgt, nรคmlich ID und Name
- Anschlieรend erstellen wir ein Objekt aus der Klasse und weisen der ID-Eigenschaft den Wert โ1โ und der Namenseigenschaft den Wert โ.Netโ zu.
- Anschlieรend verwenden wir die Serialisierung, um das obige Objekt in eine Datei namens โExample.txtโ zu serialisieren
- 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
Code-Erklรคrung:-
- 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.
- 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โ.
Code-Erklรคrung:-
- Zuerst erstellen wir ein Objekt der Tutorial-Klasse. Anschlieรend weisen wir der ID den Wert โ1โ und der Namenseigenschaft โ.netโ zu.
- 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.
- 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.
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:-
- Wir erstellen das Objekt โStromโ um die Datei Beispiel.txt im schreibgeschรผtzten Modus zu รถffnen.
- 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.
- 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:-
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.




