Partilhar via


SYSLIB0011: A serialização BinaryFormatter está obsoleta

Devido a vulnerabilidades de segurança no BinaryFormatter, as APIs a seguir foram marcadas como obsoletas no .NET 5. Usá-los no código gera aviso ou erro SYSLIB0011 em tempo de compilação.

Começando no .NET 8, BinaryFormatter.Serialize e BinaryFormatter.Deserialize lançar um NotSupportedException em tempo de execução na maioria dos tipos de projeto. Além disso, PreserializedResourceWriter.AddBinaryFormattedResource(String, Byte[], String) está obsoleta como aviso e as seguintes APIs estão obsoletas como erro:

Soluções

Se você estiver usando BinaryFormattero , você deve migrar para fora dele devido às suas falhas de segurança e confiabilidade. Para obter mais informações, consulte Riscos de desserialização no uso de BinaryFormatter e tipos relacionados e Alternativas preferenciais.

Suprimir um aviso

Se você precisar usar as APIs obsoletas, poderá suprimir o aviso/erro no código ou no arquivo de projeto.

Para suprimir apenas uma única violação, adicione diretivas de pré-processador ao arquivo de origem para desativar e reativar o aviso.

// Disable the warning.
#pragma warning disable SYSLIB0011

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

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

Para suprimir todos os SYSLIB0011 avisos em seu projeto, adicione uma <NoWarn> propriedade ao seu arquivo de projeto.

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

Para obter mais informações, consulte Suprimir avisos.

Consulte também