Freigeben über


SYSLIB0011: BinaryFormatter Serialisierung ist veraltet

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.

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:

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