健壮的.net序列化的最佳方法

本文关键字:最佳 方法 序列化 net | 更新日期: 2023-09-27 18:12:13

我想保存和恢复当前定义为POCO对象的一些设置,并希望保存/加载操作即使在正在保存的数据格式发生变化时也能工作,以便忽略未知数据并正确添加新数据

我可以使用哪个框架?我知道我不能使用XML序列化,因为它很脆弱,一旦在数据结构中看到不匹配的元素就会中断。我可以用什么来代替,"刚刚好"?

健壮的.net序列化的最佳方法

虽然它是XML并且它可能无法处理所有更改,但DataContractSeralizer可以处理添加/删除属性。它还具有处理未知数据的回调。

http://msdn.microsoft.com/en-us/library/ms731138.aspx

您可能想尝试JSON序列化,它可能会做您需要的。

然而,最好的解决方案可能是实现你自己的序列化,以确保它以你需要的方式工作。这将确保以您需要的方式处理任何新添加的值。

当你说"脆弱"时,你的意思可能是"不向后兼容"或"我更改了合约,它不能处理我的更改"。

它真的不"脆弱"。它更像是"当你改变一些东西时,它不包含人工智能来知道你想要什么"。

因此,最好的办法是通过您自己的自定义序列化机制来处理它。因为你会在这里输入"如果这个不再存在怎么办,但我不在乎"的逻辑。

没有"只是工作"的解决方案,恕我直言。因为一个人的"无论什么版本都必须存在"是另一个人的"我可以在这个新版本中跳过这条信息"