Delen via


SerializationFormat.Binary is verouderd

SerializationFormat.Binary is verouderd voor DataTable en DataSet. Binaire serialisatie is afhankelijk van BinaryFormatter, wat onveilig is. Als u in uw code gebruikt SerializationFormat.Binary , wordt er tijdens het compileren waarschuwingswaarschuwing gegenereerd SYSLIB0038 .

Bovendien wordt er tijdens runtime een InvalidEnumArgumentException gegenereerd als u:

Vorig gedrag

Eerder, DataTable en DataSet kon worden geserialiseerd en gedeserialiseerd met hun RemotingFormat eigenschap ingesteld op SerializationFormat.Binary, die onder de motorkap werd gebruikt BinaryFormatter .

Nieuw gedrag

Als u vanaf .NET 7 probeert te serialiseren of deserialiseren DataTable en DataSet de RemotingFormat eigenschap ingesteld SerializationFormat.Binaryop , wordt er een InvalidEnumArgumentException gegenereerd.

Versie geïntroduceerd

.NET 7

Type wijziging die fouten veroorzaken

Deze wijziging kan van invloed zijn op de broncompatibiliteit en binaire compatibiliteit.

Reden voor wijziging

SerializationFormat.Binary wordt geïmplementeerd via BinaryFormatter, wat onveilig is en verouderd is in de gehele .NET-stack.

Als uw code gebruikmaakt SerializationFormat.Binaryvan, schakelt u over naar SerializationFormat.Xml of gebruikt u een andere serialisatiemethode.

Anders kunt u de Switch.System.Data.AllowUnsafeSerializationFormatBinary AppContext schakeloptie instellen. Met deze schakeloptie kunt u ervoor kiezen om het gebruik van SerializationFormat.Binary, zodat code kan werken zoals voorheen. Deze switch wordt echter verwijderd in .NET 8. Zie AppContext voor bibliotheekgebruikers voor informatie over het instellen van de schakeloptie.

Betrokken API's

Zie ook