Rumah > Artikel > pembangunan bahagian belakang > Pensirian Objek C#
Untuk menukar objek dalam urutan atau aliran bait, proses yang digunakan dipanggil serialisasi. Untuk penghantaran objek ke pangkalan data, fail, atau memori kami menggunakan serialisasi. Untuk rekreasi yang tepat atau pemulihan objek apabila diperlukan, penyirian memainkan peranan penting kerana ia menyelamatkan keadaan objek. Melalui kenyataan ini, kami bermaksud bahawa menggunakan perkhidmatan web seseorang boleh memindahkan objek ke mana-mana lokasi terpencil, dengan pemindahan mudah objek dari satu domain ke domain yang lain. Proses bersiri terbalik dikenali sebagai penyahsirian kerana ia merupakan proses penukaran jujukan bait bersiri kepada objek.
Sintaks Pensirian Objek C#:
Untuk bersiri objek dalam C#, atribut dipanggil [Serializable]. Jika atribut tidak disebut dengan cara yang betul, maka pada masa larian, SerializableException dilemparkan.
Di bawah ialah sintaks:
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(); }
Sintaks Penyahsirilan Objek C#:
Di bawah ialah sintaks:
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); }
Mari kita bincangkan contoh Pensirilan Objek C#.
Dalam kod di bawah, kita perlu membuat siri kelas EduCBA supaya kita telah menggunakan [Serializable]. Untuk menghentikan sebarang ralat daripada berlaku selepas pelaksanaan kod, seseorang harus menyebut atribut ini. Selepas menyebut atribut untuk kelas yang ingin kami sirikan, kami telah menerangkan empat sifat kelas kami iaitu "CourseName1" rentetan dan "CoursePrice1" nilai integer dan begitu juga, "CourseName2" rentetan dan "CoursePrice2" integer nilai. Untuk membuka fail “E:EDUCBA.txt” dalam mod baca sahaja, objek hello dicipta objek “hello” dan pada akhirnya, kami telah memaparkan “yum” menggunakan sifat yang telah kami nyatakan sebelum ini.
Kod:
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(); } } }
Output:
Dalam kod di bawah, kita perlu membuat siri kelas CBA supaya kita telah menggunakan [Serializable]. Untuk menghentikan sebarang ralat daripada berlaku selepas pelaksanaan kod, seseorang harus menyebut atribut ini. Selepas menyebut atribut untuk kelas yang ingin kami sirikan, kami telah menerangkan sembilan sifat kelas kami iaitu "ID_pelajar1" nilai integer dan "nama_pelajar1" rentetan dan "CGPA1" nilai berganda yang bermaksud ia mengandungi nilai nombor dengan titik perpuluhan dan begitu juga "ID2_pelajar" nilai integer dan "nama_pelajar2" rentetan dan "CGPA2" nilai berganda dan nilai "ID_pelajar" ialah integer dan "nama_pelajar3" rentetan dan "CGPA3" nilai berganda. Untuk membuka fail "E:EDUCBA.txt" dalam mod baca sahaja, objek hello dicipta objek "belajar" dan pada akhirnya, kami telah memaparkan "ID" menggunakan sifat yang telah kami nyatakan sebelum ini dalam baris yang berbeza dan teks yang menyebut perkara yang sebenarnya diwakili oleh data.
Kod:
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); } } }
Output:
Dalam contoh di bawah, untuk bersiri objek, mula-mula kita telah mencipta strim ( FileStream) objek "boo" kemudian kita telah mencipta objek untuk objek BinaryFormatter "coo" kemudian kita telah memanggil "coo.Serialize(boo, aoo)” iaitu kaedah BinaryFormatter.Serialize() untuk penyirian objek dalam C#.
Begitu juga untuk penyahsirian objek, mula-mula kami telah mencipta objek "boo" aliran ( FileStream) yang digunakan untuk membaca output bersiri kemudian kami telah mencipta objek untuk objek BinaryFormatter "doo" kemudian kami telah memanggil " doo. Deserialize(boo)” yang merupakan kaedah BinaryFormatter.Deserialize() untuk penyahsirilan objek dalam C#.
Kod:
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(); } } }
Output:
Atas dasar perbincangan di atas, kami memahami pensirilan objek dalam C# serta penyahsirilan objek yang sama dalam C#. Kami juga memahami kepentingan bersiri. Kami telah membincangkan pelbagai contoh yang berkaitan dengan penyirian C# dan penyahsirian C# bersama-sama dengan sintaks kedua-duanya.
Atas ialah kandungan terperinci Pensirian Objek C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!