Serialisasi dan Deserialisasi dalam C# dengan Contoh

⚡ Ringkasan Cerdas

Serialisasi di C# mengubah sebuah objek menjadi aliran byte sehingga dapat disimpan ke dalam file atau dikirim antar aplikasi; deserialisasi membangun kembali objek tersebut. Di sini Anda akan belajar cara melakukan serialisasi dan deserialisasi objek dengan contoh-contoh.

  • 🔄 Apa itu: Serialisasi menulis objek C# ke dalam sebuah file, dan deserialisasi membacanya kembali.
  • [Dapat diserialisasi]: Suatu kelas memerlukan atribut [Serializable] sebelum dapat diserialisasi.
  • 💾 Format biner: BinaryFormatter dengan FileStream menulis objek dalam bentuk biner.
  • 🧩 Format: C# juga mendukung serialisasi XML dan JSON untuk output yang mudah dibaca.
  • 🤖 Bantuan AI: Alat AI seperti GitHub Copilot menghasilkan kode serialisasi secara instan.

Serialisasi dan Deserialisasi C#

Serialisasi & Deserialisasi di C#

Konsep serialisasi dan deserialisasi digunakan setiap kali data yang berkaitan dengan objek harus dikirim dari satu aplikasi ke aplikasi lain. Serialisasi digunakan untuk mengekspor data aplikasi ke dalam file. Aplikasi tujuan kemudian menggunakan deserialisasi untuk mengekspor data tersebut.tracData dari aplikasi tersebut digunakan untuk keperluan 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 tersebut memiliki 2 properti ID dan nama Tutorial.

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

Jenis-jenis Serialisasi di C#

C# mendukung beberapa format serialisasi, dan Anda memilih salah satunya berdasarkan di mana data tersebut akan digunakan. Jenis-jenis utamanya tercantum di bawah ini.

  • Serialisasi biner Mengonversi objek menjadi aliran biner yang ringkas. Proses ini cepat tetapi tidak mudah dibaca manusia dan terikat pada .NET.
  • Serialisasi XML Menggunakan kelas XmlSerializer untuk menulis properti publik suatu objek ke dalam file XML yang dapat dibaca.
  • Serialisasi JSON menggunakan System.Text.Json atau Newtonsoft.Json untuk menghasilkan JSON yang ringan, format yang paling umum untuk API web.
  • Serialisasi SOAP memformat data sebagai pesan SOAP untuk layanan web lama.

Cara Membuat Serialisasi Objek di C#

Mari kita lihat contoh bagaimana kita dapat mencapai hal ini.

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

  1. Buat kelas bernama Tutorial yang memiliki 2 properti yaitu ID, dan Nama
  2. Kami kemudian akan membuat objek dari kelas dan memberikan nilai “1” pada properti ID dan nilai “.Net” pada properti nama.
  3. Kami kemudian akan menggunakan serialisasi untuk membuat serialisasi objek di atas ke file bernama Contoh.txt
  4. Terakhir, kita akan menggunakan deserialisasi untuk membatalkan serialisasi objek dari file dan menampilkan nilainya di Konsol.

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

Langkah 1) Tambahkan kelas.

Langkah pertama adalah menambahkan kelas yang akan digunakan untuk serialisasi

Membuat serial Objek di C#

Code Penjelasan:-

  1. Kelas yang perlu diserialkan harus memiliki atribut [Serializable]. Ini adalah kata kunci dalam C#. Kata kunci inilah yang kemudian ditempelkan pada kelas Tutorial. Jika Anda tidak menyebutkan atribut ini, Anda akan mendapatkan kesalahan saat mencoba membuat serial kelas.
  2. Berikutnya adalah definisi kelas yang akan diserialkan. Di sini kita mendefinisikan kelas yang disebut “Tutorial” dan menyediakan 2 properti, satu adalah “ID” dan yang lainnya adalah “Nama.”

Langkah 2) Buat objeknya.

Pada langkah ini, pertama-tama kita akan membuat objek kelas Tutorial dan membuat serialisasinya ke file bernama Contoh.txt

Membuat serial Objek di C#

Code Penjelasan:-

  1. Pertama, kita 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 serialisasi atau mengonversi objek ke format biner. Data dalam file dalam serialisasi dilakukan dalam format biner. Selanjutnya, kita membuat objek aliran file. Objek aliran file digunakan untuk membuka file Contoh.txt untuk tujuan 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, sejak menulis operasi selesai.

Langkah 3) Gunakan deserialisasi.

Terakhir, untuk memastikan bahwa data ada dalam file, kami menggunakan deserialisasi untuk melakukan deserialisasi objek dari file.

Membuat serial Objek di C#

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();
  }
 }
}

Code Penjelasan:-

  1. Kami membuat objek “aliran” untuk membuka file Contoh.txt dalam mode hanya baca.
  2. Kami kemudian menggunakan kelas formatter yang digunakan untuk membatalkan serialisasi objek, yang disimpan dalam file Contoh.txt. Objek yang dikembalikan disetel ke objek objnew.
  3. Terakhir, kami menampilkan properti objek “objnew” ke konsol menggunakan properti “ID” dan “name”.

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

Keluaran:-

Membuat serial Objek di C#

Anda dapat melihat dari keluaran di atas bahwa nilai dari file telah dideserialisasi dengan benar dan ditampilkan di konsol.

Serialisasi JSON di C#

JSON adalah format yang paling banyak digunakan untuk aplikasi modern dan API web. Fitur bawaan System.Text.Json Namespace melakukan serialisasi dan deserialisasi objek dengan satu panggilan metode, seperti yang ditunjukkan di bawah ini.

using System;
using System.Text.Json;
namespace DemoApplication
{
  class Tutorial
  {
    public int ID { get; set; }
    public string Name { get; set; }
  }
  class Program
  {
    static void Main(string[] args)
    {
      Tutorial obj = new Tutorial { ID = 1, Name = ".Net" };
      string json = JsonSerializer.Serialize(obj);
      Console.WriteLine(json);

      Tutorial objnew = (Tutorial)JsonSerializer.Deserialize(json, typeof(Tutorial));
      Console.WriteLine(objnew.Name);
      Console.ReadKey();
    }
  }
}

Keluaran:

{"ID":1,"Name":".Net"}
.Net

Pertanyaan Umum Demo Slot

Serialisasi mengubah objek C# menjadi aliran byte (biner, XML, atau JSON) sehingga dapat disimpan ke file atau dikirim ke aplikasi lain. Deserialisasi membangun kembali objek dari data tersebut.

Atribut [Serializable] menandai sebuah kelas sehingga objek-objeknya dapat diserialisasi. Tanpa atribut ini, serialisasi biner akan melempar pengecualian ketika Anda mencoba menulis objek ke dalam sebuah file.

C# mendukung serialisasi biner (kompak, khusus .NET), serialisasi XML melalui XmlSerializer, serialisasi JSON melalui System.Text.Json, dan serialisasi SOAP untuk layanan web lama.

Serialisasi menulis data suatu objek ke dalam file atau aliran data, sedangkan deserialisasi membaca kembali data tersebut dan merekonstruksi objek asli di dalam memori.

BinaryFormatter kini sudah usang dan dianggap tidak aman karena dapat mengeksekusi kode berbahaya selama proses deserialisasi. Microsoft Merekomendasikan System.Text.Json atau XmlSerializer untuk aplikasi baru.

Asisten AI seperti GitHub Copilot melengkapi otomatis panggilan Serialize dan Deserialize, menambahkan atribut [Serializable], dan menghasilkan kode serialisasi JSON atau XML dari komentar singkat.

Ya. Alat berbasis AI menghasilkan kelas model, memilih antara format JSON, XML, dan biner, serta menambahkan penanganan kesalahan sehingga kode serialisasi Anda aman dan lengkap.

Serialisasi biner menggunakan System.Runtime.Serialization.Formatters.Binary, JSON menggunakan System.Text.Json, dan XML menggunakan System.Xml.Serialization.

Ringkaslah postingan ini dengan: