Sdílet prostřednictvím


SYSLIB0011: Serializace BinaryFormatter je zastaralá

Z důvodu ohrožení zabezpečení v BinaryFormatter: následující rozhraní API byla v .NET 5 označena jako zastaralá. Použití v kódu generuje upozornění nebo chybu SYSLIB0011 v době kompilace.

Počínaje rozhraním .NET 8 BinaryFormatter.Serialize a BinaryFormatter.Deserialize vyvolání NotSupportedException za běhu u většiny typů projektů. Kromě toho je zastaralé jako upozornění a následující rozhraní API jsou zastaralá jako chyba: PreserializedResourceWriter.AddBinaryFormattedResource(String, Byte[], String)

Alternativní řešení

Pokud používáte BinaryFormatter, měli byste z ní migrovat kvůli chybám zabezpečení a spolehlivosti. Další informace naleznete v tématu Rizika deserializace při použití BinaryFormatter a souvisejících typů a preferovaných alternativ.

Potlačení upozornění

Pokud musíte použít zastaralá rozhraní API, můžete potlačit upozornění nebo chybu v kódu nebo v souboru projektu.

Chcete-li potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, které chcete zakázat a znovu povolit upozornění.

// Disable the warning.
#pragma warning disable SYSLIB0011

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB0011

Pokud chcete potlačit všechna SYSLIB0011 upozornění v projektu, přidejte <NoWarn> do souboru projektu vlastnost.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0011</NoWarn>
  </PropertyGroup>
</Project>

Další informace naleznete v tématu Potlačení upozornění.

Viz také