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.
BinaryFormatter Penghapusan
Dimulai dengan .NET 9, BinaryFormatter tidak lagi didukung karena risiko keamanannya yang diketahui dan API-nya selalu melemparkan PlatformNotSupportedException untuk semua jenis proyek, termasuk WPF aplikasi. Untuk informasi selengkapnya tentang pose risiko BinaryFormatter dan alasan penghapusannya, lihat BinaryFormatter panduan migrasi.
Dengan BinaryFormatterpenghapusan , diharapkan banyak WPF aplikasi akan terpengaruh, dan Anda harus mengambil tindakan untuk menyelesaikan migrasi Anda ke .NET 9 atau versi yang lebih baru.
Bagaimana BinaryFormatter pengaruhnya WPF
Sebelum .NET 9, Windows Presentation Foundation (WPF) digunakan BinaryFormatter untuk menserialisasikan dan mendeserialisasi data untuk skenario seperti clipboard, drag-and-drop, dan status load/store di Jurnal. Dimulai dengan .NET 9, WPF dan Formulir Windows menggunakan subset BinaryFormatter implementasi secara internal untuk skenario ini. Meskipun BinaryFormatterrisiko tidak dapat diatasi dalam serialisasi/deserialisasi tujuan umum, langkah-langkah telah diambil untuk mengurangi risiko dalam kasus penggunaan yang sangat spesifik ini dengan serangkaian jenis yang diketahui. Fall-back BinaryFormatter ke masih diberlakukan untuk jenis yang tidak diketahui atau tidak didukung, yang akan melemparkan PlatformNotSupportedException kecuali langkah-langkah migrasi diambil dalam aplikasi.
WPF dan aplikasi WinForms menangani jenis berikut, bersama dengan array dan daftar jenis ini. Clipboard, drag-and-drop, dan Avalon Binding di Journal akan terus bekerja dengan jenis ini tanpa langkah-langkah migrasi apa pun yang diperlukan.
boolbytechardecimaldoubleintsbytefloat- TimeSpan
- DateTime
uintstringnintnuintlongulongshortushort- PointF
- RectangleF
Skenario OLE
Untuk informasi tentang penghapusan efek BinaryFormatter pada skenario OLE seperti clipboard dan drag-and-drop serta panduan migrasi lihat BinaryFormatter OLE Formulir Windows dan Windows Presentation Foundation.
Anda dapat merujuk ke fungsi di mana kita telah menggunakan BinaryFormatter sebagai fallback untuk membaca/menyimpan objek untuk menangani: SaveObjectToHandle dan ReadObjectFromHandle untuk skenario OLE
Jurnal
Dalam kasus ketika kita perlu menyimpan atau memuat status saat mengelola riwayat navigasi di WPF.
Untuk memuat/menyimpan, kami memanggil LoadSubStreams/ SaveSubStreams kelas.DataStream Jika elemen yang digunakan bukan bagian dari jenis tahu yang ditangani oleh implementasi baru, elemen tersebut akan menggunakan BinaryFormatter.
Saat pengembang menavigasi melalui JournalEntry menggunakan Navigate, , GoForwardatau GoBack, data simpul dimuat atau disimpan ke aliran untuk menyimpan status. Jika jenis yang terlibat tidak ditangani secara intrinsik selama serialisasi/deserialisasi, BinaryFormatter digunakan.
Ref: DataStream.cs
Solusi Kompatibilitas (Tidak Disarankan)
Pengguna .NET 9 yang tidak dapat bermigrasi jauh BinaryFormatter dapat menginstal paket kompatibilitas yang tidak didukung. Untuk informasi selengkapnya, lihat BinaryFormatter panduan migrasi: Paket Kompatibilitas.
Perhatian
BinaryFormatter berbahaya dan tidak disarankan karena membahayakan aplikasi untuk serangan seperti penolakan layanan (DoS), pengungkapan informasi, atau eksekusi kode jarak jauh. Untuk informasi selengkapnya tentang pose risiko BinaryFormatter , lihat Risiko deserialisasi yang digunakan dan BinaryFormatter jenis terkait.
Terbitan
Jika Anda mengalami perilaku tak terduga dengan aplikasi Anda WPF mengenai BinaryFormatter, silakan ajukan masalah di dotnet/wpf/issues dan tunjukkan bahwa masalah tersebut terkait dengan penghapusan BinaryFormatter.