Implementação do BinaryFormatter nativo removida e sempre é gerada
A implementação do BinaryFormatter "nativo" agora gera exceções em tempo de execução em todos os casos. Este é o estágio final do Plano de obsolescência do BinaryFormatter.
Comportamento anterior
É possível construir uma instância BinaryFormatter e usá-la para serializar e desserializar cargas.
Novo comportamento
A partir do .NET 9, a implementação do BinaryFormatter nativo gera exceções ao uso, mesmo com as configurações que habilitaram seu uso anteriormente. Essas configurações também são removidas.
Versão introduzida
.NET 9 Preview 6
Tipo de alteração interruptiva
Esta é uma alteração comportamental.
Motivo da alteração
BinaryFormatter
é um formato inseguro e a causa de muitos bugs de segurança. Removê-lo da estrutura aumenta a segurança geral do .NET.
Ação recomendada
Se o código usar BinaryFormatter
, você deverá selecionar um novo formato de serialização e migrar seu código.
Se você julgar o risco de BinaryFormatter
aceitável para seus casos de uso e se comprometer a usar uma classe que não pode ser protegida, você ainda poderá usar BinaryFormatter
por meio de um pacote NuGet separado e sem suporte.
Para obter mais informações, incluindo diretrizes sobre serializadores alternativos, consulte o guia de migração do BinaryFormatter.
APIs afetadas
Confira também
- Comunicado: o BinaryFormatter está sendo removido no .NET 9
- BinaryFormatter foi desabilitado na maioria dos tipos de projeto (.NET 8)
- APIs de serialização BinaryFormatter produzem erros de compilador (.NET 7)
- SerializationFormat.Binary está obsoleto (.NET 7)
- Os métodos de serialização BinaryFormatter estão obsoletos (.NET 5)