Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Devido a vulnerabilidades de segurança em BinaryFormatter, as seguintes APIs foram marcadas como obsoletas no .NET 5. Usá-los no código gera avisos ou erros SYSLIB0011 em tempo de compilação.
- System.Exception.SerializeObjectState
- BinaryFormatter.Serialize
- BinaryFormatter.Deserialize
- Formatter.Serialize(Stream, Object)
- Formatter.Deserialize(Stream)
- IFormatter.Serialize(Stream, Object)
- IFormatter.Deserialize(Stream)
Começando no .NET 8, BinaryFormatter.Serialize e BinaryFormatter.Deserialize lançam uma NotSupportedException em tempo de execução na maioria dos tipos de projetos. Além disso, PreserializedResourceWriter.AddBinaryFormattedResource(String, Byte[], String) está obsoleto como aviso, e as seguintes APIs estão obsoletas como erro:
- System.Runtime.Serialization.Formatter
- System.Runtime.Serialization.IFormatter
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
Soluções
Se estiveres a usar BinaryFormatter, deves deixar de o usar devido às falhas de segurança e fiabilidade. Para mais informações, veja Riscos de desserialização no uso de BinaryFormatter e tipos relacionados e alternativas preferenciais.
Suprimir um aviso
Se tiver de usar as APIs obsoletas, pode suprimir o aviso/erro no código ou no ficheiro do seu 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 avisos de SYSLIB0011 em seu projeto, adicione uma propriedade <NoWarn> 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
- Resolução de erros de obsolescência e desativação do BinaryFormatter
- Os métodos de serialização BinaryFormatter são obsoletos e proibidos em aplicações ASP.NET (.NET 5)
- As APIs de serialização BinaryFormatter produzem erros de compilador (.NET 7)
- BinaryFormatter desabilitado na maioria dos tipos de projeto (.NET 8)