Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Aufgrund von Sicherheitsrisiken in BinaryFormatterwurden die folgenden APIs in .NET 5 als veraltet markiert. Die Verwendung im Code erzeugt Warnungen oder Fehler SYSLIB0011 während der Kompilierung.
- System.Exception.SerializeObjectState
- BinaryFormatter.Serialize
- BinaryFormatter.Deserialize
- Formatter.Serialize(Stream, Object)
- Formatter.Deserialize(Stream)
- IFormatter.Serialize(Stream, Object)
- IFormatter.Deserialize(Stream)
Ab .NET 8 werfen BinaryFormatter.Serialize und BinaryFormatter.Deserialize zur Laufzeit ein NotSupportedException bei den meisten Projekttypen. Darüber hinaus ist PreserializedResourceWriter.AddBinaryFormattedResource(String, Byte[], String) veraltet als Warnung, und die folgenden APIs sind veraltet als Fehler:
- System.Runtime.Serialization.Formatter
- System.Runtime.Serialization.IFormatter
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
Problemumgehungen
Wenn Sie BinaryFormatter verwenden, sollten Sie aufgrund von Sicherheits- und Zuverlässigkeitsmängeln davon migrieren. Weitere Informationen finden Sie unter Deserialisierungsrisiken bei verwendung von BinaryFormatter und verwandten Typen und bevorzugten Alternativen.
Unterdrücken einer Warnung
Wenn Sie die veralteten APIs verwenden müssen, können Sie die Warnung/den Fehler im Code oder in der Projektdatei unterdrücken.
Um nur einen einzelnen Verstoß zu unterdrücken, fügen Sie Ihrer Quelldatei Präprozessordirektiven hinzu, um die Warnung zu deaktivieren und dann erneut zu aktivieren.
// Disable the warning.
#pragma warning disable SYSLIB0011
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0011
Um alle SYSLIB0011 Warnungen in Ihrem Projekt zu unterdrücken, fügen Sie ihrer Projektdatei eine <NoWarn> Eigenschaft hinzu.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0011</NoWarn>
</PropertyGroup>
</Project>
Weitere Informationen finden Sie unter Unterdrücken von Warnungen.
Siehe auch
- Behebung von Veralterungs- und Deaktivierungsfehlern bei BinaryFormatter
- BinaryFormatter Serialisierungsmethoden sind in ASP.NET Apps (.NET 5) veraltet und unzulässig.
- BinaryFormatter Serialization APIs erzeugen Compilerfehler (.NET 7)
- BinaryFormatter ist für die meisten Projekttypen deaktiviert (.NET 8)