共用方式為


大部分專案類型都已停用 BinaryFormatter

BinaryFormatter.Serialize(Stream, Object)BinaryFormatter.Deserialize(Stream) 方法現在幾乎在所有專案類型的執行階段擲出 NotSupportedException,包括主控台應用程式。

先前的行為

在 .NET 7 中已將 BinaryFormatter.Serialize(Stream, Object)BinaryFormatter.Deserialize(Stream) 方法標示為已淘汰,並於編譯時間提出錯誤。 不過,如果您的應用程式抑制了淘汰,則其仍然可以呼叫這些方法,而且它們在大部分專案類型中都可正常運作 (不包括 ASP.NET、WASM 和 MAUI)。 例如,API 在主控台應用程式中可正常運作。

新的行為

自 .NET 8 開始,受影響的方法會在所有專案類型的執行階段擲出 NotSupportedException,除了 Windows Forms 和 WPF 以外。 API 會繼續在所有專案類型保持已淘汰 (作為錯誤),包括 Windows Forms 和 WPF。

導入的版本

.NET 8 Preview 4

中斷性變更的類型

此變更為行為變更

變更原因

此執行階段變更是 BinaryFormatter obsoletion 方案的下一個階段,其中 BinaryFormatter 最終會從 .NET 中移除。

最佳動作時程是因安全性和可靠性瑕疵而離開 BinaryFormatter 如需詳細資訊,請參閱慣用的替代方案

如果您需要繼續使用 BinaryFormatter,可以在專案檔中設定相容性切換,以重新啟用 BinaryFormatter 功能。 如需詳細資訊,請參閱 .NET 7 中斷性變更 (部分機器翻譯) 通知的建議動作一節。 .NET 8 會繼續採用該相容性切換。

受影響的 API

另請參閱