SYSLIB0011: A BinaryFormatter szerializálása elavult

A biztonsági résekBinaryFormattermiatt a következő API-k elavultként lettek megjelölve a .NET 5-ben. A kódban való használat figyelmeztetést vagy hibát SYSLIB0011 eredményez fordításkor.

A .NET 8-tól BinaryFormatter.SerializeBinaryFormatter.Deserialize kezdve a legtöbb projekttípusnál futásidőben is indíthat NotSupportedException . Ezenkívül PreserializedResourceWriter.AddBinaryFormattedResource(String, Byte[], String)figyelmeztetésként elavult, és a következő API-k hibaként elavultak:

Áthidaló megoldások

Ha használja BinaryFormatter, a biztonsági és megbízhatósági hiányosságok miatt érdemes más megoldást választani. További információ: Deszerializálási kockázatok a BinaryFormatter és a kapcsolódó típusok éselőnyben részesített alternatívák használatában.

Figyelmeztetés mellőzése

Ha az elavult API-kat kell használnia, letilthatja a figyelmeztetést/hibát a kódban vagy a projektfájlban.

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz, hogy letiltsa, majd engedélyezze újra a figyelmeztetést.

// Disable the warning.
#pragma warning disable SYSLIB0011

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

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

Ha el szeretné tiltani a projekt összes SYSLIB0011 figyelmeztetését, adjon hozzá egy <NoWarn> tulajdonságot a projektfájlhoz.

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

További információ: Figyelmeztetések letiltása.

Lásd még