SerializationFormat.Binary je zastaralé

SerializationFormat.Binary je zastaralý pro DataTable a DataSet. Binární serializace spoléhá na BinaryFormatter, což je nezabezpečené. Pokud v kódu použijete SerializationFormat.Binary , upozornění na obsoletion SYSLIB0038 se vygeneruje v době kompilace.

Kromě toho je za běhu programu vyhozena výjimka InvalidEnumArgumentException, pokud:

Předchozí chování

DataTable Dříve a DataSet lze serializovat a deserializovat s jejich RemotingFormat vlastností nastavena na SerializationFormat.Binary, který se použil BinaryFormatter pod kapotou.

Nové chování

Počínaje rozhraním .NET 7, pokud se pokusíte serializovat nebo deserializovat DataTable a s jejich DataSet vlastností nastavenou na RemotingFormat, je SerializationFormat.Binary vyvolánaInvalidEnumArgumentException.

Zavedená verze

.NET 7

Typ zásadní změny

Tato změna může ovlivnit kompatibilitu zdroje a binární kompatibilitu.

Důvod změny

SerializationFormat.Binary se implementuje prostřednictvím BinaryFormatter, která je nezabezpečená a zastaralá v celém zásobníku .NET.

Pokud váš kód používá SerializationFormat.Binary, přepněte na použití SerializationFormat.Xml nebo použijte jinou metodu serializace.

V opačném případě můžete přepínač nastavit Switch.System.Data.AllowUnsafeSerializationFormatBinaryAppContext . Tento přepínač vám umožní povolit používání SerializationFormat.Binarykódu tak, aby fungoval jako předtím. Tento přepínač se ale odebere v .NET 8. Informace o nastavení přepínače naleznete v tématu AppContext pro uživatele knihovny.

Ovlivněná rozhraní API

Viz také