Compartilhar via


O SerializationFormat.Binary está obsoleto

SerializationFormat.Binary está obsoleto para DataTable e DataSet. A serialização binária depende de BinaryFormatter, que não é seguro. Se você usar SerializationFormat.Binary no código, o aviso de obsolescência SYSLIB0038 será gerado em tempo de compilação.

Além disso, uma InvalidEnumArgumentException será gerada em tempo de execução se você:

Comportamento anterior

Anteriormente, DataTable e DataSet podiam ser serializados e desserializados com a respectiva propriedade RemotingFormat definida como SerializationFormat.Binary, que usava BinaryFormatter nos bastidores.

Novo comportamento

Do .NET 7 em diante, se você tentar serializar ou desserializar DataTable e DataSet com a respectiva propriedade RemotingFormat definida como SerializationFormat.Binary, uma InvalidEnumArgumentException será gerada.

Versão introduzida

.NET 7

Tipo de alteração interruptiva

Essa alteração pode afetar a compatibilidade com binários e a compatibilidade com a origem.

Motivo da alteração

SerializationFormat.Binary é implementado por meio de BinaryFormatter, que não é seguro e está ficando obsoleto em toda a pilha do .NET.

Se o código usar SerializationFormat.Binary, mude para SerializationFormat.Xml ou use outro método de serialização.

Caso contrário, você pode definir a opção Switch.System.Data.AllowUnsafeSerializationFormatBinary AppContext. Com essa opção, você pode permitir o uso de SerializationFormat.Binary para que o código consiga funcionar como antes. No entanto, essa opção será removida no .NET 8. Para obter informações de como definir a opção, confira AppContext para consumidores da biblioteca.

APIs afetadas

Confira também