SerializationFormat.Binary 已淘汰

DataTableDataSetSerializationFormat.Binary 已淘汰。 二進位序列化仰賴 BinaryFormatter,而這並不安全。 如果您在程式碼中使用 SerializationFormat.Binary,在編譯時期會產生淘汰警告 SYSLIB0038

此外,如果您進行下列設定,在執行時間會擲回 InvalidEnumArgumentException

先前的行為

先前,可以透過將 DataTableDataSetRemotingFormat 屬性設定為 SerializationFormat.Binary (在幕後使用 BinaryFormatter),來進行序列化和還原序列化。

新的行為

從 .NET 7 開始,如果您嘗試,將 DataTableDataSetRemotingFormat 屬性設定為 SerializationFormat.Binary 來進行序列化或還原序列化,則會擲回 InvalidEnumArgumentException

導入的版本

.NET 7

中斷性變更的類型

這項變更會影響來源相容性二進位相容性

變更原因

SerializationFormat.Binary 會透過 BinaryFormatter 實作,而這並不安全,且即將從整個 .NET 堆疊淘汰。

如果您的程式碼使用 SerializationFormat.Binary,請切換為使用 SerializationFormat.Xml,或使用另一個序列化方法。

或者,您可以設定 Switch.System.Data.AllowUnsafeSerializationFormatBinaryAppContext 參數。 這個參數可讓您選擇允許使用 SerializationFormat.Binary,讓程式碼可以像之前一樣運作。 不過,此參數會在 .NET 8 中移除。 如需設定此參數的相關資訊,請參閱適用於程式庫取用者的 AppContext

受影響的 API

另請參閱