Freigeben über


SerializationFormat.Binary ist veraltet.

SerializationFormat.Binary ist für DataTable und DataSet veraltet. Die binäre Serialisierung basiert auf dem BinaryFormatter, der unsicher ist. Wenn Sie SerializationFormat.Binary in Ihrem Code verwenden, wird zur Kompilierzeit die Veraltungswarnung SYSLIB0038 generiert.

Darüber hinaus wird in den folgenden Situationen zur Laufzeit eine InvalidEnumArgumentException ausgelöst:

Vorheriges Verhalten

Zuvor konnten DataTable und DataSet serialisiert und deserialisiert werden, während die RemotingFormat-Eigenschaft auf SerializationFormat.Binary festgelegt war, wodurch im Hintergrund BinaryFormatter verwendet wurde.

Neues Verhalten

Ab .NET 7 wird eine InvalidEnumArgumentException ausgelöst, wenn Sie versuchen, DataTable und DataSet zu serialisieren oder zu deserialisieren, während deren RemotingFormat-Eigenschaft auf SerializationFormat.Binary festgelegt ist.

Eingeführt in Version

.NET 7

Typ des Breaking Changes

Diese Änderung kann sich auf Quellkompatibilität und binäre Kompatibilität auswirken.

Grund für die Änderung

SerializationFormat.Binary wird über BinaryFormatter implementiert, der unsicher und im gesamten .NET-Stapel veraltet ist.

Wenn SerializationFormat.Binary in Ihrem Code verwendet wird, wechseln Sie zu SerializationFormat.Xml, oder verwenden Sie eine andere Serialisierungsmethode.

Andernfalls können Sie den AppContext-Schalter Switch.System.Data.AllowUnsafeSerializationFormatBinary festlegen. Mit diesem Schalter können Sie die Verwendung von SerializationFormat.Binary zulassen, damit Code wie zuvor funktioniert. Dieser Schalter wird jedoch in .NET 8 entfernt. Weitere Informationen zum Festlegen des Schalters finden Sie unter AppContext für Bibliotheksconsumer.

Betroffene APIs

Siehe auch