Serialisasi dan deserialisasi penting saat data objek harus berpindah antar aplikasi atau bertahan di seluruh sesi. Dalam C#, serialisasi menulis status objek ke medium penyimpanan—umumnya file—sedangkan deserialisasi merekonstruksi objek dari representasi yang tersimpan.
Pertimbangkan kelas sederhana, Tutorial, yang memiliki dua properti: ID dan Name. Dengan menserialisasi instance dari kelas ini ke file, kita kemudian dapat membaca file dan merekonstruksi objek yang sama dengan data aslinya utuh.
Cara Menserialisasi Objek dalam C#
Di bawah ini adalah panduan langkah demi langkah yang menunjukkan proses dalam aplikasi konsol.
Buat kelas Tutorial dengan properti ID dan Name.
Buat instance kelas, tetapkan ID = 1 dan Name = ".Net".
Serialisasi objek ke file bernama Example.txt.
Deserialisasi objek dari file dan tampilkan nilainya di konsol.
Tempel kode berikut ke dalam file Program.cs Anda.
Langkah 1) Tambahkan kelas. Langkah pertama adalah menambahkan kelas yang akan diserialisasi.
Penjelasan Kode:
Kelas harus ditandai dengan atribut [Serializable]; jika tidak, serialisasi akan gagal.
Definisikan kelas Tutorial dengan dua field: int ID dan string Name.
Langkah 2) Buat objek dan serialisasinya. Dalam langkah ini, kita membuat instance objek Tutorial dan menulisnya ke Example.txt.
Penjelasan Kode:
Buat instance dari Tutorial dan tetapkan ID = 1 dan Name = ".Net".
Buat instance BinaryFormatter (catatan: BinaryFormatter usang di .NET 5+; pertimbangkan System.Text.Json atau XmlSerializer untuk kode produksi).
Buka FileStream dalam mode FileMode.Create dan FileAccess.Write untuk menulis data biner.
Panggil formatter.Serialize untuk menulis objek ke aliran, lalu tutup aliran.
Langkah 3) Deserialisasi objek. Terakhir, baca data kembali dari file untuk memverifikasi proses.
using System; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; 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:
Buka file dalam mode baca.
Deserialisasi data biner kembali ke instance Tutorial.
Cetak ID dan Name ke konsol.
Menjalankan program di Visual Studio menghasilkan output berikut:
Output:
Seperti yang ditunjukkan, nilai berhasil diambil dari file.
Ringkasan
Serialisasi menulis data objek ke file, sedangkan deserialisasi membaca data tersebut kembali ke dalam objek. Teknik dasar ini mendasari banyak skenario pertukaran data .NET.