SYSLIB0011: BinaryFormatter-Serialisierung ist veraltet

Aufgrund der Sicherheitsrisiken in BinaryFormatter wurden die folgenden APIs ab .NET 5 als veraltet gekennzeichnet. Ihre Verwendung im Code führt zur Kompilierzeit zur Warnung SYSLIB0011.

Ab .NET 8 lösen BinaryFormatter.Serialize und BinaryFormatter.Deserialize zur Laufzeit für die meisten Projekttypen eine NotSupportedException aus. Darüber hinaus ist PreserializedResourceWriter.AddBinaryFormattedResource(String, Byte[], String) veraltet als Warnung, und die folgenden APIs sind veraltet als Fehler:

Problemumgehung

Wenn Sie BinaryFormatter verwenden, sollten Sie aufgrund von Einschränkungen bei der Sicherheit und Zuverlässigkeit migrieren. Weitere Informationen finden Sie unter Deserialisierungsrisiken bei der Verwendung von BinaryFormatter und verwandten Typen sowie unter Bevorzugte Alternativen.

Unterdrücken einer Warnung

Wenn Sie die veralteten APIs verwenden müssen, können Sie die Warnung bzw. den Fehler im Code oder in Ihrer Projektdatei unterdrücken.

Um nur einen einzelnen Verstoß zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Warnung zu deaktivieren und dann wieder 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