Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Metode BinaryFormatter.Serialize(Stream, Object) dan BinaryFormatter.Deserialize(Stream) sekarang melemparkan NotSupportedException pada runtime di hampir semua jenis proyek, termasuk aplikasi konsol.
Perilaku sebelumnya
Di .NET 7, BinaryFormatter.Serialize(Stream, Object) metode dan BinaryFormatter.Deserialize(Stream) ditandai usang dan menimbulkan kesalahan pada waktu kompilasi. Namun, jika aplikasi Anda menekan penghapusan atau pembatalan, aplikasi tersebut masih bisa memanggil metode-metode yang berfungsi dengan baik di sebagian besar jenis proyek, tetapi tidak dalam proyek ASP.NET, WASM, dan MAUI. Misalnya, API berfungsi dengan benar di aplikasi konsol.
Perilaku baru
Mulai dari .NET 8, metode yang terpengaruh melemparkan NotSupportedException pada runtime di semua jenis proyek kecuali Windows Forms dan WPF. API tetap usang karena kesalahan pada semua jenis proyek, termasuk Windows Forms dan WPF.
Versi yang diperkenalkan
Pratinjau .NET 8 4
Jenis perubahan yang memutus kompatibilitas
Perubahan ini adalah perubahan perilaku .
Alasan perubahan
Perubahan runtime ini adalah tahap berikutnya dari rencana kehancuran BinaryFormatter, di mana BinaryFormatter pada akhirnya akan dihapus dari .NET.
Tindakan yang direkomendasikan
Tindakan terbaik adalah bermigrasi jauh dari BinaryFormatter karena kelemahan keamanan dan keandalannya. Untuk informasi selengkapnya, lihat Alternatif pilihan.
Jika Anda perlu terus menggunakan BinaryFormatter, Anda dapat mengatur sakelar kompatibilitas dalam file proyek Anda untuk mengaktifkan BinaryFormatter kembali fungsionalitas. Untuk informasi selengkapnya, lihat bagian Tindakan yang direkomendasikan dari pemberitahuan perubahan pemecahan masalah .NET 7. Sakelar kompatibilitas tersebut terus berlaku di .NET 8.
API yang terpengaruh
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream, Object)
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream)