Partager via


SerializationFormat.Binary est obsolète

SerializationFormat.Binary est obsolète pour DataTable et DataSet. La sérialisation binaire s’appuie sur BinaryFormatter, qui n’est pas sécurisé. Si vous utilisez SerializationFormat.Binary dans votre code, l’avertissement d’obsolescence SYSLIB0038 sera généré au moment de la compilation.

Par ailleurs, un InvalidEnumArgumentException est levé au moment de l’exécution si vous :

Comportement précédent

Auparavant, DataTable et DataSet pouvaient être sérialisés et désérialisés avec leur propriété RemotingFormat définie sur SerializationFormat.Binary, qui utilisait BinaryFormatter de manière cachée.

Nouveau comportement

À compter de .NET 7, si vous tentez de sérialiser ou de désérialiser DataTable et DataSet avec leur propriété RemotingFormat définie sur SerializationFormat.Binary, une exception InvalidEnumArgumentException est levée.

Version introduite

.NET 7

Type de changement cassant

Cette modification peut affecter la compatibilité des sources et la compatibilité binaire.

Raison du changement

SerializationFormat.Binary est implémenté via BinaryFormatter, qui est non sécurisé et obsolète sur l’ensemble de la pile .NET.

Si votre code utilise SerializationFormat.Binary, utilisez plutôt SerializationFormat.Xml ou une autre méthode de sérialisation.

Sinon, vous pouvez définir le commutateur Switch.System.Data.AllowUnsafeSerializationFormatBinaryAppContext. Ce commutateur vous permet d’autoriser l’utilisation de SerializationFormat.Binary pour que le code fonctionne comme avant. Toutefois, ce commutateur sera supprimé dans .NET 8. Pour plus d’informations sur la configuration du commutateur, consultez AppContext pour le contrôle serveur consommateur de bibliothèque.

API affectées

Voir aussi