SerializationFormat.Binary está obsoleto
SerializationFormat.Binary é obsoleta para DataTable e DataSet. A serialização binária depende do BinaryFormatter, que é inseguro. Se você usar SerializationFormat.Binary em seu código, SYSLIB0038 de aviso de obsolescência serão gerados em tempo de compilação.
Além disso, um InvalidEnumArgumentException é lançado em tempo de execução se:
- Definir DataSet.RemotingFormat ou DataTable.RemotingFormat para SerializationFormat.Binary.
- Chame um dos construtores de desserialização para DataTable ou DataSet com dados binários.
Comportamento anterior
Anteriormente, DataTable e DataSet podia ser serializado e desserializado com sua RemotingFormat propriedade definida como SerializationFormat.Binary, que usado BinaryFormatter sob o capô.
Novo comportamento
A partir do .NET 7, se você tentar serializar ou desserializar DataTable e DataSet com sua RemotingFormat propriedade definida como SerializationFormat.Binary, um InvalidEnumArgumentException será lançado.
Versão introduzida
.NET 7
Tipo de mudança de rutura
Essa alteração pode afetar a compatibilidade de origem e a compatibilidade binária.
Razão para a alteração
SerializationFormat.Binary é implementado através do BinaryFormatter, que é inseguro e está obsoleto em toda a pilha .NET.
Ação recomendada
Se o seu código usa SerializationFormat.Binary, alterne para usar SerializationFormat.Xml ou usar outro método de serialização.
Caso contrário, você pode definir a Switch.System.Data.AllowUnsafeSerializationFormatBinary
AppContext opção. Essa opção permite que você opte por permitir o uso do SerializationFormat.Binary, para que o código possa funcionar como antes. No entanto, essa opção será removida no .NET 8. Para obter informações sobre como definir a opção, consulte AppContext para consumidores de biblioteca.
APIs afetadas
- System.Data.SerializationFormat.Binary
- DataSet.RemotingFormat
- DataTable.RemotingFormat
- DataSet(SerializationInfo, StreamingContext)
- DataSet(SerializationInfo, StreamingContext, Boolean)
- DataTable(SerializationInfo, StreamingContext)