Partilhar via


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:

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.

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

Consulte também