Delen via


SYSLIB0011: Serialisatie van BinaryFormatter is verouderd

Vanwege beveiligingsproblemen in BinaryFormatterzijn de volgende API's gemarkeerd als verouderd in .NET 5. Als u ze in code gebruikt, wordt er een waarschuwing of fout SYSLIB0011 gegenereerd tijdens het compileren.

Begin in .NET 8 BinaryFormatter.Serialize en BinaryFormatter.Deserialize gooi een NotSupportedException runtime op de meeste projecttypen. Bovendien PreserializedResourceWriter.AddBinaryFormattedResource(String, Byte[], String) is deze verouderd als waarschuwing en zijn de volgende API's verouderd als fout:

Tijdelijke oplossingen

Als u deze gebruikt BinaryFormatter, moet u deze verwijderen vanwege de beveiligings- en betrouwbaarheidsfouten. Zie Deserialization-risico's voor het gebruik van BinaryFormatter en gerelateerde typen en voorkeursalternatieven voor meer informatie.

Een waarschuwing onderdrukken

Als u de verouderde API's moet gebruiken, kunt u de waarschuwing/fout in code of in het projectbestand onderdrukken.

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de waarschuwing uit te schakelen en vervolgens opnieuw in te schakelen.

// Disable the warning.
#pragma warning disable SYSLIB0011

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

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

Als u alle SYSLIB0011 waarschuwingen in uw project wilt onderdrukken, voegt u een <NoWarn> eigenschap toe aan het projectbestand.

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

Zie Waarschuwingen onderdrukken voor meer informatie.

Zie ook