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.

Vanaf .NET 8 gooien BinaryFormatter.Serialize en BinaryFormatter.Deserialize een NotSupportedException tijdens de uitvoering voor de meeste projecttypen. Bovendien is PreserializedResourceWriter.AddBinaryFormattedResource(String, Byte[], String) verouderd als een waarschuwing, en zijn de volgende API's verouderd als een fout:

Tijdelijke oplossingen

Als u BinaryFormatter gebruikt, moet u stoppen met het gebruik ervan vanwege de beveiligings- en betrouwbaarheidsproblemen. Zie Deserialization-risico's voor het gebruik van BinaryFormatter en gerelateerde typen envoorkeursalternatieven 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 onderdrukkenvoor meer informatie.

Zie ook