已移除內建的 BinaryFormatter 實作,且一律會擲回
“in box” BinaryFormatter 實作現在在所有情況下都會在運行時間擲回例外狀況。 這是 BinaryFormatter obsoletion 計劃的最後階段。
先前的行為
您可以建構 BinaryFormatter 實例,並用它來串行化和還原串行化承載。
新的行為
從 .NET 9 開始,內建 BinaryFormatter 實作會在使用時擲回例外狀況,即使先前啟用其使用設定也是如此。 這些設定也會移除。
導入的版本
.NET 9 Preview 6
中斷性變更的類型
此變更為行為變更。
變更原因
BinaryFormatter
是不安全的格式,也是許多安全性錯誤的原因。 從架構中移除它會增加 .NET 的整體安全性。
建議的動作
如果您的程式代碼使用 BinaryFormatter
,您應該選取新的串行化格式並移轉程式代碼。
如果您判斷使用案例可接受的 BinaryFormatter
風險,且您承諾使用無法確保安全的類別,您仍然可以透過個別且不支援的 NuGet 套件使用 BinaryFormatter
。
如需詳細資訊,包括替代串行化程式的指引,請參閱 BinaryFormatter 移轉指南。