Dela via


SerializationFormat.Binary är föråldrad

SerializationFormat.Binary är föråldrad för DataTable och DataSet. Binär serialisering förlitar sig på BinaryFormatter, vilket är osäkert. Om du använder SerializationFormat.Binary i koden genereras obsoletionsvarning SYSLIB0038 vid kompileringstillfället.

Dessutom utlöses en InvalidEnumArgumentException vid körning om du:

Tidigare beteende

Tidigare och DataTable DataSet kunde serialiseras och deserialiseras med deras RemotingFormat egenskap inställd på SerializationFormat.Binary, som används BinaryFormatter under huven.

Nytt beteende

Från och med .NET 7, om du försöker serialisera eller deserialisera DataTable och DataSet med deras RemotingFormat egenskap inställd på SerializationFormat.Binary, genereras en InvalidEnumArgumentException .

Version introducerad

.NET 7

Typ av icke-bakåtkompatibel ändring

Den här ändringen kan påverka källkompatibilitet och binär kompatibilitet.

Orsak till ändringen

SerializationFormat.Binary implementeras via BinaryFormatter, vilket är osäkert och är föråldrat i hela .NET-stacken.

Om koden använder SerializationFormat.Binaryväxlar du till att använda SerializationFormat.Xml eller använda en annan serialiseringsmetod.

Annars kan du ställa in växeln Switch.System.Data.AllowUnsafeSerializationFormatBinary AppContext . Med den här växeln kan du välja att tillåta användning av SerializationFormat.Binary, så att koden kan fungera som tidigare. Den här växeln tas dock bort i .NET 8. Information om hur du ställer in växeln finns i AppContext för bibliotekskonsumenter.

Berörda API:er

Se även