Konsep Serialisasi dan deserialisasi digunakan setiap kali data yang berkaitan dengan objek harus dikirim dari satu aplikasi ke aplikasi lain. Serialisasi digunakan untuk mengeksport data aplikasi ke dalam fail. Aplikasi tujuan kemudian menggunakan deserialisasi untuk mengekstrak data dari aplikasi untuk penggunaan selanjutnya.
Serialisasi adalah konsep di mana objek kelas C # ditulis atau bersiri ke fail. Katakan anda mempunyai kelas C # yang disebut Tutorial. Dan kelas tersebut mempunyai 2 sifat ID dan nama Tutorial.
Bersiri boleh digunakan untuk menulis secara langsung sifat data kelas Tutorial ke fail. Deserialization digunakan untuk membaca data dari fail dan membina semula objek Tutorial.
Mari kita lihat contoh bagaimana kita dapat mencapainya.
Dalam contoh kami, kami akan melakukan langkah-langkah tahap tinggi di bawah dalam kod
- Buat kelas yang disebut Tutorial yang mempunyai 2 sifat, iaitu ID, dan Nama
- Kami kemudian akan membuat objek dari kelas dan memberikan nilai "1" pada properti ID dan nilai ".Net" ke nama properti.
- Kami kemudian akan menggunakan serialisasi untuk membuat siri objek di atas ke fail bernama Contoh.txt
- Akhirnya, kami akan menggunakan deserialization untuk mendeserialisasikan objek dari fail dan memaparkan nilai-nilai di Konsol.
Masukkan kod di bawah dalam fail program.cs aplikasi konsol.
Langkah 1) Langkah pertama adalah menambah kelas yang akan digunakan untuk siri
Penjelasan Kod: -
- Kelas yang perlu bersiri perlu mempunyai atribut [Serializable]. Ini adalah kata kunci dalam C #. Kata kunci ini kemudian dilampirkan ke kelas Tutorial. Sekiranya anda tidak menyebutkan atribut ini, anda akan mendapat ralat semasa anda mencuba siri siri kelas.
- Seterusnya adalah definisi kelas yang akan bersiri. Di sini kita mendefinisikan kelas yang disebut "Tutorial" dan memberikan 2 sifat, satu adalah "ID" dan yang lain adalah "Nama."
Langkah 2) Pada langkah ini, pertama kita akan membuat objek kelas Tutorial dan memasangkannya ke fail yang disebut Contoh.txt
Penjelasan Kod: -
- Pertama, kita membuat objek kelas Tutorial. Kami kemudian menetapkan nilai "1" ke ID dan ".net" pada nama properti.
- Kami kemudian menggunakan kelas formatter yang digunakan untuk membuat siri atau menukar objek ke format binari. Data dalam fail secara bersiri dilakukan dalam format binari. Seterusnya, kami membuat objek aliran fail. Objek aliran fail digunakan untuk membuka fail Contoh.txt untuk tujuan penulisan. Kata kunci FileMode.Create dan FileMode.Write digunakan untuk menyebut secara khusus bahawa fail tersebut harus dibuka untuk tujuan penulisan.
- Akhirnya, kami menggunakan kaedah Serialize untuk memindahkan data binari ke fail. Kami kemudian menutup aliran, kerana operasi menulis selesai.
Langkah 3) Akhirnya untuk memastikan bahawa data ada di dalam file, kami menggunakan deserialization untuk deserialize objek dari file.
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();}}}
Penjelasan Kod: -
- Kami membuat objek "stream" untuk membuka file Contoh.txt dalam mod baca sahaja.
- Kami kemudian menggunakan kelas pemformat yang digunakan untuk mendeserisasi objek, yang disimpan dalam fail Contoh.txt. Objek yang dikembalikan ditetapkan ke objek tersebut.
- Akhirnya, kami memaparkan sifat objek "objnew" ke konsol menggunakan sifat "ID" dan "name".
Apabila kod di atas ditetapkan, dan projek dijalankan menggunakan Visual Studio, anda akan mendapat output di bawah.
Pengeluaran:-
Anda dapat melihat dari output di atas bahawa nilai-nilai dari fail terdeseralisasi dengan betul dan dipaparkan di konsol.
Ringkasan
Serialisasi digunakan untuk menulis objek kelas ke fail.
De-Serialization digunakan untuk memulihkan objek dari fail.