【发布时间】:2010-11-12 08:33:38
【问题描述】:
上周我花了很多时间在序列化上。在那段时间里,我发现了许多使用 BinaryFormatter 或 XmlSerializer 的示例。不幸的是,我没有找到任何全面详细说明两者之间差异的示例。
我好奇的根源在于为什么 BinaryFormatter 能够直接反序列化为接口,而 XmlSerializer 却不能。 Jon Skeet 在对“casting to multiple (unknown types) at runtime”的回答中提供了对接口进行直接二进制序列化的示例。 Stan R. 在他对“XML Object Deserialization to Interface”的回答中为我提供了使用 XmlSerializer 实现目标的方法。
除了明显的 BinaryFormatter 使用二进制序列化而 XmlSerializer 使用 XML 之外,我想更全面地了解根本区别。何时使用其中一种以及每种的优缺点。
【问题讨论】:
标签: c# .net serialization xml-serialization binary-serialization