内置 BinaryFormatter 实现已删除并且始终引发

“内置”BinaryFormatter 实现当前在所有情况下都会在运行时引发异常。 这是 BinaryFormatter 过时计划的最后阶段。

旧行为

可以构造一个 BinaryFormatter 实例,并使用它来序列化和反序列化有效负载。

新行为

从 .NET 9 开始,随机 BinaryFormatter 实现会在使用时引发异常,即使设置之前支持其使用也是如此。 这些设置也会被删除。

引入的版本

.NET 9 预览版 6

中断性变更的类型

此更改为行为更改

更改原因

BinaryFormatter 是一种不安全的格式,造成了许多安全 bug。 从框架中删除它会增加 .NET 的整体安全性。

如果代码使用 BinaryFormatter,则应选择新的序列化格式并迁移代码。

如果你判断用例可接受 BinaryFormatter 的风险,并且你承诺使用无法确保安全的类,你仍可以通过单独的不受支持 NuGet 包使用 BinaryFormatter

有关详细信息(包括有关替代序列化程序的指南),请参阅 BinaryFormatter 迁移指南

受影响的 API

另请参阅