Um ein Objekt in eine Sequenz oder einen Bytestrom umzuwandeln, wird der verwendete Prozess Serialisierung genannt. Für die Übertragung eines Objekts in die Datenbanken, Dateien oder den Speicher verwenden wir die Serialisierung. Für die exakte Wiederherstellung oder Wiederherstellung eines Objekts bei Bedarf spielt die Serialisierung eine entscheidende Rolle, da sie den Zustand eines Objekts speichert. Mit dieser Aussage meinten wir, dass man mithilfe eines Webdienstes ein Objekt durch eine einfache Übertragung eines Objekts von einer Domäne zu einer anderen an einen beliebigen entfernten Standort übertragen kann. Der umgekehrte Prozess der Serialisierung wird als Deserialisierung bezeichnet, da es sich um den Prozess der Konvertierung einer serialisierten Bytesequenz in ein Objekt handelt.
C#-Objektserialisierungssyntax:
Für die Serialisierung des Objekts in C# gibt es ein Attribut namens [Serializable]. Wenn das Attribut nicht ordnungsgemäß erwähnt wird, wird zur Laufzeit eine SerializableException ausgelöst.
Unten finden Sie die Syntax:
public static void SomeData() { string aoo = "Heyoo! Thank you for visiting us...."; FileStream boo = new FileStream(@"D:\EduCBA.txt", FileMode.Create,FileAccess.Write, FileShare.None); BinaryFormatter coo = new BinaryFormatter(); coo.Serialize(boo, aoo); boo.Close(); }
C#-Objekt-Deserialisierungssyntax:
Unten finden Sie die Syntax:
public static void AnotherData() { FileStream boo = new FileStream(@"D:\EduCBA.txt", FileMode.Open,FileAccess.Read, FileShare.Read); BinaryFormatter doo = new BinaryFormatter(); string eoo = ""; eoo = (string)doo.Deserialize(boo); boo.Close(); Console.WriteLine("EduCBA’s-se-ria-li-za-tion-&-de-se-ria-li-za-tion-in-C#-exam-ple"); Console.WriteLine("\n"); Console.WriteLine(eoo); }
Lassen Sie uns Beispiele für die C#-Objektserialisierung besprechen.
Im folgenden Code müssen wir die Klasse EduCBA serialisieren, also haben wir [Serializable] verwendet. Um zu verhindern, dass nach der Ausführung des Codes ein Fehler auftritt, sollte dieses Attribut erwähnt werden. Nachdem wir das Attribut für die Klasse erwähnt haben, die wir serialisieren möchten, haben wir die vier Eigenschaften unserer Klasse beschrieben: „CourseName1“ eine Zeichenfolge und „CoursePrice1“ ein ganzzahliger Wert sowie „CourseName2“ eine Zeichenfolge und „CoursePrice2“ eine ganze Zahl Wert. Um eine Datei „E:EDUCBA.txt“ im schreibgeschützten Modus zu öffnen, wird ein Objekt „Hallo“ erstellt und am Ende haben wir „yum“ mit den zuvor erwähnten Eigenschaften angezeigt.
Code:
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 Careerplan { [Serializable] class EduCBA { public String CourseName1; public int CoursePrice1; public String CourseName2; public int CoursePrice2; static void Main(string[] rahul) { EduCBA yum = new EduCBA(); yum.CourseName1 = "C# Training"; yum.CoursePrice1 = 25900; yum.CourseName2 = "C++ Training"; yum.CoursePrice2 = 28490; IFormatter formatter = new BinaryFormatter(); Stream hello = new FileStream(@"E:\EDUCBA.txt",FileMode.Create,FileAccess.Write, FileShare.None); formatter.Serialize(hello, yum); hello.Close(); hello = new FileStream(@"E:\EDUCBA.txt",FileMode.Open,FileAccess.Read, FileShare.Read); hello.Close(); Console.WriteLine(yum.CourseName1); Console.WriteLine(yum.CoursePrice1); Console.WriteLine(yum.CourseName2); Console.WriteLine(yum.CoursePrice2); Console.ReadKey(); } } }
Ausgabe:
Im folgenden Code müssen wir die Klasse CBA serialisieren, daher haben wir [Serializable] verwendet. Um zu verhindern, dass nach der Ausführung des Codes ein Fehler auftritt, sollte dieses Attribut erwähnt werden. Nachdem wir das Attribut für die Klasse erwähnt haben, die wir serialisieren möchten, haben wir die neun Eigenschaften unserer Klasse beschrieben, nämlich „student_ID1“, ein ganzzahliger Wert, „student_name1“, ein String und „CGPA1“, ein doppelter Wert, was bedeutet, dass sie Zahlenwerte mit enthält Dezimalstellen und entsprechend ist „student_ID2“ ein ganzzahliger Wert und „student_name2“ ein String und „CGPA2“ ein Double-Wert und „student_ID3“ ist ein Integer-Wert und „student_name3“ ein String und „CGPA3“ ein Double-Wert. Um eine Datei „E:EDUCBA.txt“ im schreibgeschützten Modus zu öffnen, wird ein Objekt „hello“ und ein Objekt „learn“ erstellt und am Ende haben wir die „ID“ mithilfe der zuvor erwähnten Eigenschaften in verschiedenen Zeilen angezeigt und Text, der angibt, was die Daten tatsächlich darstellen.
Code:
using System; using System.IO; using System.Linq; using System.Threading.Tasks; using System.Text; using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Serialization; namespace StudentData { [Serializable] class CBA { public int student_ID1; public String student_name1; public double CGPA1; public int student_ID2; public String student_name2; public double CGPA2; public int student_ID3; public String student_name3; public double CGPA3; static void Main(string[] annie) { CBA ID = new CBA(); ID.student_ID1 = 15023456; ID.student_name1 = "Rahul Kashyap"; ID.CGPA1 = 9.5; ID.student_ID2 = 18023950; ID.student_name2 = "Ankush Rajput"; ID.CGPA2 = 8.7; ID.student_ID3 = 19084653; ID.student_name3 = "Aadarsh Rajput"; ID.CGPA3 = 7.5; IFormatter eduCBA = new BinaryFormatter(); Stream learn = new FileStream(@"E:\EDUCBA.txt",FileMode.Create,FileAccess.Write, FileShare.None); eduCBA.Serialize(learn, ID); learn.Close(); learn = new FileStream(@"E:\EDUCBA.txt",FileMode.Open,FileAccess.Read, FileShare.Read); learn.Close(); Console.Write("\n"); Console.Write("Welcome! Desired data is below"); Console.Write("\n"); Console.Write("\n"); Console.Write("::TABLE::"); Console.Write("\n"); Console.Write("\n"); Console.Write("::ROW1::"); Console.WriteLine("Student_ID: {0}", ID.student_ID1); Console.Write("::ROW2::"); Console.WriteLine("Student_Name: {0}", ID.student_name1); Console.Write("::ROW3::"); Console.WriteLine("CGPA Scored: {0}", ID.CGPA1); Console.Write("\n"); Console.Write("\n"); Console.Write("::ROW1::"); Console.WriteLine("Student_ID: {0}", ID.student_ID2); Console.Write("::ROW2::"); Console.WriteLine("Student_Name: {0}", ID.student_name2); Console.Write("::ROW3::"); Console.WriteLine("CGPA Scored: {0}", ID.CGPA2); Console.Write("\n"); Console.Write("\n"); Console.Write("::ROW1::"); Console.WriteLine("Student_ID: {0}", ID.student_ID3); Console.Write("::ROW2::"); Console.WriteLine("Student_Name: {0}", ID.student_name3); Console.Write("::ROW3::"); Console.WriteLine("CGPA Scored: {0}", ID.CGPA3); } } }
Ausgabe:
Im folgenden Beispiel haben wir für die Serialisierung eines Objekts zuerst ein Stream-Objekt (FileStream) „boo“ erstellt, dann haben wir ein Objekt für das BinaryFormatter-Objekt „coo“ erstellt und dann „coo.Serialize(boo, aoo)“, eine BinaryFormatter.Serialize()-Methode für die Serialisierung eines Objekts in C#.
In ähnlicher Weise haben wir für die Deserialisierung eines Objekts zunächst ein Stream-Objekt (FileStream) „boo“ erstellt, das zum Lesen der serialisierten Ausgabe verwendet wird. Dann haben wir ein Objekt für das BinaryFormatter-Objekt „doo“ erstellt und dann „ doo. Deserialize(boo)“, eine BinaryFormatter.Deserialize()-Methode zur Deserialisierung eines Objekts in C#.
Code:
using System; using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace EDUCBA { class Rahul { public static void SomeData() { string aoo = "Heyoo! Thank you for visiting us...."; FileStream boo = new FileStream(@"D:\EduCBA.txt", FileMode.Create,FileAccess.Write, FileShare.None); BinaryFormatter coo = new BinaryFormatter(); coo.Serialize(boo, aoo); boo.Close(); } public static void AnotherData() { FileStream boo = new FileStream(@"D:\EduCBA.txt", FileMode.Open,FileAccess.Read, FileShare.Read); BinaryFormatter doo = new BinaryFormatter(); string eoo = ""; eoo = (string)doo.Deserialize(boo); boo.Close(); Console.WriteLine("EduCBA’s-se-ria-li-za-tion-&-de-se-ria-li-za-tion-in-C#-exam-ple"); Console.WriteLine("\n"); Console.WriteLine(eoo); } static void Main(string[] foo) { SomeData(); AnotherData(); Console.ReadLine(); } } }
Ausgabe:
Auf der Grundlage der obigen Diskussion haben wir die Serialisierung eines Objekts in C# sowie die Deserialisierung desselben Objekts in C# verstanden. Wir haben auch die Bedeutung der Serialisierung verstanden. Wir haben verschiedene Beispiele im Zusammenhang mit der C#-Serialisierung und C#-Deserialisierung sowie die Syntax beider besprochen.
Das obige ist der detaillierte Inhalt vonC#-Objektserialisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!