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

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 zu einer anderen gesendet werden müssen. Die Serialisierung wird verwendet, um Anwendungsdaten in eine Datei zu exportieren. Die Zielanwendung verwendet 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 Name des Tutorials.

Die Serialisierung kann verwendet werden, um die Dateneigenschaften der Tutorial-Klasse direkt in eine Datei zu schreiben. Die Deserialisierung wird verwendet, um die Daten aus der Datei zu lesen und das Tutorial-Objekt erneut zu erstellen.

So serialisieren Sie ein Objekt in C#

Sehen 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 zwei Eigenschaften hat, nämlich ID und Name
  2. Wir erstellen dann ein Objekt aus der Klasse und weisen der ID-Eigenschaft den Wert „1“ und der Namenseigenschaft den Wert „.Net“ zu.
  3. Wir werden dann die Serialisierung verwenden, um das obige Objekt in eine Datei namens Example.txt zu serialisieren
  4. Schließlich verwenden wir die Deserialisierung, 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) Klasse hinzufügen.
Der erste Schritt besteht darin, die Klasse hinzuzufügen, die für die Serialisierung verwendet wird

Code-Erklärung:-

  1. Die zu serialisierende Klasse muss das Attribut [Serializable] haben. 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 eine Fehlermeldung, wenn Sie versuchen, die Klasse zu serialisieren.
  2. Als nächstes folgt die Definition der zu serialisierenden Klasse. Hier definieren wir eine Klasse namens „Tutorial“ und stellen zwei Eigenschaften bereit, eine ist „ID“ und die andere „Name“.

Schritt 2) Erstellen Sie das Objekt.
In diesem Schritt erstellen wir zuerst das Objekt der Tutorial-Klasse und serialisieren es in die Datei namens Example.txt

Code-Erklärung:-

  1. Zuerst erstellen wir ein Objekt der Tutorial-Klasse. Wir weisen dann der ID den Wert „1“ und der Eigenschaft name den Wert „.net“ zu.
  2. Wir verwenden dann die Formatierungsklasse, die zum Serialisieren oder Konvertieren des Objekts in ein Binärformat verwendet wird. Die Daten in der Datei bei der Serialisierung erfolgen im Binärformat. Als Nächstes erstellen wir ein Datei-Stream-Objekt. Das Filestream-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. Schließlich verwenden wir die Serialize-Methode, um die Binärdaten in die Datei zu übertragen. Wir schließen dann den Stream, da der Schreibvorgang abgeschlossen ist.

Schritt 3) Verwenden Sie die Deserialisierung.
Um sicherzustellen, dass die Daten in der Datei vorhanden sind, verwenden wir die Deserialisierung, um das Objekt aus der Datei zu deserialisieren.

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 „stream“, um die Datei Example.txt im schreibgeschützten Modus zu öffnen.
  2. Wir verwenden dann die Formatierungsklasse, die verwendet wird, um das Objekt zu deserialisieren, das in der Datei „Example.txt“ gespeichert ist. Das zurückgegebene Objekt wird auf das Objekt objnew gesetzt.
  3. Schließlich zeigen wir die Eigenschaften des Objekts „objnew“ auf der Konsole an, indem wir die Eigenschaften „ID“ und „Name“ verwenden.

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

Ausgabe:-

Sie können der obigen Ausgabe entnehmen, dass die Werte aus der Datei korrekt deserialisiert und in der Konsole angezeigt wurden.

Zusammenfassung

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

Die Deserialisierung wird verwendet, um die Objekte aus der Datei wiederherzustellen.


C Sprache

  1. C#-Klasse und -Objekt
  2. Abstrakte C#-Klasse und -Methode
  3. C# Teilklasse und Teilmethode
  4. Versiegelte C#-Klasse und -Methode
  5. Java-Dateiklasse
  6. Operatoren in C++ mit Beispiel:Was ist, Typen und Programme
  7. Unterschied zwischen Struktur und Klasse:Erklärt mit C++-Beispiel
  8. C# Abstract Class Tutorial mit Beispiel:Was ist Abstraktion?
  9. Java BufferedReader:Lesen von Dateien in Java mit Beispiel
  10. type() und isinstance() in Python mit Beispielen