C # Serialisasi & Deserialisasi dengan Contoh

Anonim

Konsep Serialization dan deserialization digunakan setiap kali data yang berkaitan dengan objek harus dikirim dari satu aplikasi ke aplikasi lainnya. Serialisasi digunakan untuk mengekspor data aplikasi ke dalam file. Aplikasi tujuan kemudian menggunakan deserialisasi untuk mengekstrak data dari aplikasi untuk digunakan lebih lanjut.

Serialisasi adalah konsep di mana objek kelas C # ditulis atau diserialkan ke file. Katakanlah Anda memiliki kelas C # yang disebut Tutorial. Dan kelas memiliki 2 properti ID dan nama Tutorial.

Serialisasi dapat digunakan untuk langsung menulis properti data kelas Tutorial ke file. Deserialization digunakan untuk membaca data dari file dan membuat objek Tutorial lagi.

Mari kita lihat contoh bagaimana kita bisa mencapai ini.

Dalam contoh kami, kami akan melakukan langkah-langkah tingkat tinggi di bawah ini dalam kode

  1. Buat kelas bernama Tutorial yang memiliki 2 properti yaitu ID dan Name
  2. Kami kemudian akan membuat objek dari kelas dan memberikan nilai "1" ke properti ID dan nilai ".Net" ke properti nama.
  3. Kami kemudian akan menggunakan serialisasi untuk membuat serial objek di atas ke file bernama Example.txt
  4. Terakhir, kita akan menggunakan deserialization untuk menghilangkan objek dari file dan menampilkan nilainya di Console.

Masukkan kode di bawah ini dalam file program.cs dari aplikasi konsol.

Langkah 1) Langkah pertama adalah menambahkan kelas yang akan digunakan untuk serialisasi

Penjelasan Kode: -

  1. Kelas yang perlu diserialkan harus memiliki atribut [Serializable]. Ini adalah kata kunci di C #. Kata kunci ini kemudian dilampirkan ke kelas Tutorial. Jika Anda tidak menyebutkan atribut ini, Anda akan mendapatkan kesalahan saat mencoba membuat serial kelas.
  2. Selanjutnya adalah definisi kelas yang akan dibuat serial. Di sini kita mendefinisikan kelas yang disebut "Tutorial" dan menyediakan 2 properti, satu adalah "ID" dan yang lainnya adalah "Nama."

Langkah 2) Pada langkah ini, pertama kita akan membuat objek dari kelas Tutorial dan membuat serial ke file bernama Example.txt

Penjelasan Kode: -

  1. Pertama, kami membuat objek kelas Tutorial. Kami kemudian menetapkan nilai "1" ke ID dan ".net" ke properti nama.
  2. Kami kemudian menggunakan kelas formatter yang digunakan untuk membuat serial atau mengonversi objek ke format biner. Data dalam file dalam serialisasi dilakukan dalam format biner. Selanjutnya, kami membuat objek aliran file. Objek file stream digunakan untuk membuka file Example.txt untuk keperluan penulisan. Kata kunci FileMode.Create dan FileMode.Write digunakan untuk secara khusus menyebutkan bahwa file harus dibuka untuk tujuan penulisan.
  3. Terakhir, kami menggunakan metode Serialize untuk mentransfer data biner ke file. Kami kemudian menutup aliran, karena operasi tulis selesai.

Langkah 3) Akhirnya untuk memastikan bahwa data ada di file, kami menggunakan deserialization untuk deserialisasi objek dari file tersebut.

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 Kode: -

  1. Kami membuat objek "aliran" untuk membuka file Example.txt dalam mode hanya membaca.
  2. Kami kemudian menggunakan kelas formatter yang digunakan untuk deserialisasi objek, yang disimpan dalam file Example.txt. Objek yang dikembalikan disetel ke objek objek.
  3. Akhirnya, kami menampilkan properti objek "objnew" ke konsol menggunakan properti "ID" dan "nama".

Ketika kode di atas disetel, dan proyek dijalankan menggunakan Visual Studio, Anda akan mendapatkan output di bawah ini.

Keluaran:-

Anda dapat melihat dari output di atas bahwa nilai-nilai dari file tersebut telah di-deserialisasi dengan benar dan ditampilkan di konsol.

Ringkasan

Serialisasi digunakan untuk menulis objek kelas ke file.

De-Serialization digunakan untuk memulihkan objek dari file.