上周我花了很多时间在序列化上。在那段时间里,我发现了许多使用 BinaryFormatter 或 XmlSerializer 的示例。不幸的是,我没有找到任何全面详细说明两者之间差异的示例。
我好奇的根源在于为什么 BinaryFormatter 能够直接反序列化为接口,而 XmlSerializer 则不能。Jon Skeet在对“在运行时转换为多个(未知类型) ”的回答中提供了一个直接二进制序列化到接口的示例。Stan R.在他对“ XML Object Deserialization to Interface ”的回答中为我提供了使用 XmlSerializer 实现目标的方法。
除了 BinaryFormatter 使用二进制序列化而 XmlSerializer 使用 XML 之外,我想更全面地了解根本区别。何时使用其中一种以及每种的优缺点。