Bagikan melalui


SYSLIB0011: Serialisasi BinaryFormatter sudah usang

Karena kerentanan keamanan di BinaryFormatter, API berikut ditandai sebagai usang di .NET 5. Menggunakannya dalam kode menghasilkan peringatan atau kesalahan SYSLIB0011 pada waktu kompilasi.

Mulai dari .NET 8, BinaryFormatter.Serialize dan BinaryFormatter.Deserialize melemparkan NotSupportedException pada waktu proses pada sebagian besar jenis proyek. Selain itu, PreserializedResourceWriter.AddBinaryFormattedResource(String, Byte[], String) usang sebagai peringatan, dan API berikut usang sebagai kesalahan:

Penyelesaian masalah

Jika Anda menggunakan BinaryFormatter, Anda harus bermigrasi jauh darinya karena kelemahan keamanan dan keandalannya. Untuk informasi selengkapnya, lihat Risiko deserialisasi dalam penggunaan BinaryFormatter dan jenis terkait dan Alternatif pilihan.

Menyembunyikan peringatan

Jika Anda harus menggunakan API usang, Anda dapat menekan peringatan/kesalahan dalam kode atau dalam file proyek Anda.

Untuk menekan hanya satu pelanggaran, tambahkan direktif praprosedur ke file sumber Anda untuk menonaktifkan lalu mengaktifkan kembali peringatan.

// Disable the warning.
#pragma warning disable SYSLIB0011

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB0011

Untuk menekan semua SYSLIB0011 peringatan dalam proyek Anda, tambahkan <NoWarn> properti ke file proyek Anda.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0011</NoWarn>
  </PropertyGroup>
</Project>

Untuk informasi selengkapnya, lihat Menyembunyikan peringatan.

Lihat juga