Compartilhar via


SYSLIB0011: A serialização do BinaryFormatter é obsoleta

Devido a vulnerabilidades de segurança no BinaryFormatter, as seguintes APIs foram marcadas como obsoletas no .NET 5. Usar esses tipos no código gerará um aviso ou erro SYSLIB0011 em tempo de compilação.

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

Soluções Alternativas

Se você estiver usando BinaryFormatter, deverá migrar dele devido a suas falhas de segurança e confiabilidade. Para saber mais, confira Riscos de desserialização no uso do BinaryFormatter e tipos relacionados e Alternativas preferenciais.

Suprimir um aviso

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

Para suprimir apenas uma violação única, adicione as diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilite 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 avisos SYSLIB0011 no projeto, adicione uma propriedade <NoWarn> ao arquivo de projeto.

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

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

Confira também