Compartir a través de


Obsolescencia de SerializationFormat.Binary

SerializationFormat.Binary está obsoleto para DataTable y DataSet. La serialización binaria se basa en BinaryFormatter, que no es seguro. Si usa SerializationFormat.Binary en el código, se generará la advertencia de obsolescencia SYSLIB0038 en tiempo de compilación.

Además, se produce una excepción InvalidEnumArgumentException en tiempo de ejecución si ocurre lo siguiente:

Comportamiento anterior

Anteriormente, DataTable y DataSet se podían serializar y deserializar con su propiedad RemotingFormat establecida en SerializationFormat.Binary, que usaba BinaryFormatter en segundo plano.

Comportamiento nuevo

A partir de .NET 7, si intenta serializar o deserializar DataTable y DataSet con su propiedad RemotingFormat establecida en SerializationFormat.Binary, se produce una excepción InvalidEnumArgumentException.

Versión introducida

.NET 7

Tipo de cambio importante

Este cambio puede afectar a la compatibilidad de origen y la compatibilidad binaria.

Motivo del cambio

SerializationFormat.Binary se implementa mediante BinaryFormatter, que no es seguro y está obsoleto en toda la pila de .NET.

Si el código usa SerializationFormat.Binary, cambie al uso de SerializationFormat.Xml o emplee otro método de serialización.

De lo contrario, puede establecer el modificador Switch.System.Data.AllowUnsafeSerializationFormatBinaryAppContext. Este modificador le permite participar en el uso de SerializationFormat.Binary, para que el código pueda funcionar como antes. Sin embargo, este modificador se eliminará de .NET 8. Para obtener información sobre cómo establecer el modificador, consulte AppContext para consumidores de bibliotecas.

API afectadas

Vea también