Serialisasi di MFC
Artikel ini menjelaskan mekanisme serialisasi yang disediakan di Microsoft Foundation Class Library (MFC) untuk memungkinkan objek bertahan di antara eksekusi program Anda.
Serialisasi adalah proses penulisan atau pembacaan objek ke atau dari media penyimpanan persisten seperti file disk. Serialisasi sangat ideal untuk situasi di mana diinginkan untuk mempertahankan status data terstruktur (seperti kelas atau struktur C++) selama atau setelah eksekusi program. Menggunakan objek serialisasi yang disediakan oleh MFC memungkinkan hal ini terjadi secara standar dan konsisten, menghilangkan pengguna dari kebutuhan untuk melakukan operasi file dengan tangan.
MFC menyediakan dukungan bawaan untuk serialisasi di kelas CObject
. Dengan demikian, semua kelas yang berasal dari CObject
dapat memanfaatkan CObject
protokol serialisasi .
Ide dasar serialisasi adalah bahwa objek harus dapat menulis statusnya saat ini, biasanya ditunjukkan oleh nilai variabel anggotanya, ke penyimpanan persisten. Nantinya, objek dapat dibuat ulang dengan membaca, atau mendeserialisasi, status objek dari penyimpanan. Serialisasi menangani semua detail penunjuk objek dan referensi melingkar ke objek yang digunakan saat Anda menserialisasikan objek. Poin utamanya adalah bahwa objek itu sendiri bertanggung jawab untuk membaca dan menulis statusnya sendiri. Dengan demikian, agar kelas dapat diserialisasikan, kelas harus menerapkan operasi serialisasi dasar. Seperti yang ditunjukkan dalam grup artikel Serialisasi, mudah untuk menambahkan fungsionalitas ini ke kelas.
MFC menggunakan objek CArchive
kelas sebagai perantara antara objek yang akan diserialisasikan dan media penyimpanan. Objek ini selalu dikaitkan dengan CFile
objek, dari mana ia mendapatkan informasi yang diperlukan untuk serialisasi, termasuk nama file dan apakah operasi yang diminta adalah baca atau tulis. Objek yang melakukan operasi serialisasi dapat menggunakan CArchive
objek tanpa memperhatikan sifat media penyimpanan.
Objek CArchive
menggunakan operator penyisipan (<<) dan ekstraksi (>>) berlebih untuk melakukan operasi penulisan dan pembacaan. Untuk informasi selengkapnya, lihat Menyimpan dan Memuat CObjects melalui Arsip dalam artikel Serialisasi: Serialisasi Objek.
Catatan
Jangan membingungkan CArchive
kelas dengan kelas iostream tujuan umum, yang hanya untuk teks yang diformat. Kelas CArchive
ini untuk objek serial format biner.
Jika mau, Anda dapat melewati serialisasi MFC untuk membuat mekanisme Anda sendiri untuk penyimpanan data persisten. Anda harus mengambil alih fungsi anggota kelas yang memulai serialisasi pada perintah pengguna. Lihat diskusi di Catatan Teknis 22 perintah standar ID_FILE_OPEN, ID_FILE_SAVE, dan ID_FILE_SAVE_AS.
Artikel berikut mencakup dua tugas utama yang diperlukan untuk serialisasi:
Artikel Serialisasi: Serialisasi vs. Input/Output Database menjelaskan kapan serialisasi adalah teknik input/output yang sesuai dalam aplikasi database.
Baca juga
Konsep
Topik MFC Umum
Kelas CArchive
Kelas CObject
Kelas CDocument
Kelas CFile