Udostępnij za pośrednictwem


SerializationFormat.Binary jest przestarzały

SerializationFormat.Binary jest przestarzały dla i DataTable DataSet. Serializacja binarna opiera się na BinaryFormatterobiekcie , który jest niepewny. Jeśli używasz SerializationFormat.Binary w kodzie, ostrzeżenie o obsoletionie SYSLIB0038 zostanie wygenerowane w czasie kompilacji.

Ponadto element InvalidEnumArgumentException jest zgłaszany w czasie wykonywania, jeśli:

Poprzednie zachowanie

DataTable Wcześniej i DataSet można je serializować i deserializować z ich RemotingFormat właściwością ustawioną na SerializationFormat.Binary, która była używana BinaryFormatter pod maską.

Nowe zachowanie

Począwszy od platformy .NET 7, jeśli próbujesz serializować lub deserializować DataTable i DataSet z ich RemotingFormat właściwością ustawioną na SerializationFormat.Binary, jest zgłaszana wartość .InvalidEnumArgumentException

Wprowadzona wersja

.NET 7

Typ zmiany powodującej niezgodność

Ta zmiana może mieć wpływ na zgodność źródła i zgodność binarną.

Przyczyna wprowadzenia zmiany

SerializationFormat.Binary program jest implementowany za pośrednictwem programu BinaryFormatter, który jest niezabezpieczony i jest przestarzały w całym stosie platformy .NET.

Jeśli kod używa SerializationFormat.Binarymetody , przełącz się do używania SerializationFormat.Xml lub użyj innej metody serializacji.

W przeciwnym razie można ustawić Switch.System.Data.AllowUnsafeSerializationFormatBinary AppContext przełącznik. Ten przełącznik pozwala wyrazić zgodę na korzystanie z SerializationFormat.Binaryprogramu , aby kod mógł działać tak jak poprzednio. Jednak ten przełącznik zostanie usunięty na platformie .NET 8. Aby uzyskać informacje na temat ustawiania przełącznika, zobacz AppContext dla użytkowników biblioteki.

Dotyczy interfejsów API

Zobacz też