Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os métodos BinaryFormatter.Serialize(Stream, Object) e BinaryFormatter.Deserialize(Stream) agora lançam uma NotSupportedException em tempo de execução em quase todos os tipos de projeto, incluindo aplicativos de console.
Comportamento anterior
No .NET 7, os métodos BinaryFormatter.Serialize(Stream, Object) e BinaryFormatter.Deserialize(Stream) foram marcados como obsoletos e geram um erro em tempo de compilação. No entanto, se o aplicativo suprimiu a obsolescência, ele ainda podia chamar os métodos e eles funcionariam corretamente na maioria dos tipos de projeto (excluindo ASP.NET, WASM e MAUI). Por exemplo, as APIs funcionaram corretamente em um aplicativo de console.
Novo comportamento
A partir do .NET 8, os métodos afetados lançam um NotSupportedException em tempo de execução em todos os tipos de projeto, exceto Windows Forms e WPF. As APIs continuam obsoletas (como erro) em todos os tipos de projeto, incluindo Windows Forms e WPF.
Versão introduzida
.NET 8 versão prévia 4
Tipo de mudança disruptiva
Esta é uma alteração comportamental.
Motivo da alteração
Essa alteração em tempo de execução é o próximo estágio do plano de descontinuidade do BinaryFormatter, no qual BinaryFormatter eventualmente será removido do .NET.
Ação recomendada
O melhor curso de ação é migrar para fora de BinaryFormatter devido às suas falhas de segurança e confiabilidade. Para obter mais informações, consulte alternativas preferenciais.
Se você precisar continuar usando BinaryFormatter, poderá definir uma opção de compatibilidade no arquivo de projeto para habilitar novamente BinaryFormatter a funcionalidade. Para obter mais informações, consulte a seção Ação recomendada da notificação da alteração interruptiva do .NET 7. Essa opção de compatibilidade continua a ser mantida no .NET 8.
APIs afetadas
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream, Object)
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream)