Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
- System.Exception.SerializeObjectState
- BinaryFormatter.Serialize
- BinaryFormatter.Deserialize
- Formatter.Serialize(Stream, Object)
- Formatter.Deserialize(Stream)
- IFormatter.Serialize(Stream, Object)
- IFormatter.Deserialize(Stream)
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:
- System.Runtime.Serialization.Formatter
- System.Runtime.Serialization.IFormatter
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
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
- Fouten oplossen bij de veroudering en uitschakeling van BinaryFormatter
- BinaryFormatter-serialisatiemethoden zijn verouderd en verboden in ASP.NET apps (.NET 5)
- BinaryFormatter-serialisatie-API's veroorzaken compilerfouten (.NET 7)
- BinaryFormatter is uitgeschakeld voor de meeste projecttypen (.NET 8)