内置 BinaryFormatter 实现已删除并且始终引发
“内置”BinaryFormatter 实现当前在所有情况下都会在运行时引发异常。 这是 BinaryFormatter 过时计划的最后阶段。
旧行为
可以构造一个 BinaryFormatter 实例,并使用它来序列化和反序列化有效负载。
新行为
从 .NET 9 开始,随机 BinaryFormatter 实现会在使用时引发异常,即使设置之前支持其使用也是如此。 这些设置也会被删除。
引入的版本
.NET 9 预览版 6
中断性变更的类型
此更改为行为更改。
更改原因
BinaryFormatter
是一种不安全的格式,造成了许多安全 bug。 从框架中删除它会增加 .NET 的整体安全性。
建议的操作
如果代码使用 BinaryFormatter
,则应选择新的序列化格式并迁移代码。
如果你判断用例可接受 BinaryFormatter
的风险,并且你承诺使用无法确保安全的类,你仍可以通过单独的不受支持 NuGet 包使用 BinaryFormatter
。
有关详细信息(包括有关替代序列化程序的指南),请参阅 BinaryFormatter 迁移指南。