c# - XML 序列化的替代

标签 c# xml xml-serialization

我有使用 XmlSerializer 序列化/反序列化数据结构以实现持久性的代码。我在 StackOverflow 的几个地方读到和听说 XmlSerializer 是以下一项或多项:

  • 不好
  • 支持/实现不佳
  • future 可能不会得到支持

我的问题有两个方面;以上是否属实,如果属实,存在哪些替代方案?就我的目的而言,XML 工作得很好,我想保持这一点不变,但其他一切都可以改变。

编辑:如果您想对 XML 提出其他建议,我愿意接受,但它确实需要是人类可读的。

最佳答案

XmlSerializer 得到完美支持,但有一些小问题;

  • 相对慢;但通常这仍然足够快
  • 只支持公共(public)成员;可能会很痛苦
  • 需要写入访问器列表 - 太丑了

但是,我预计它会继续存在相当长的一段时间; IMO,BinaryFormatter 存在真正的问题(当用于持久化时)。

我非常有偏见(因为我是作者),但我会选择 protobuf-net ;使用 Google 的“ Protocol Buffer ”有线格式的二进制序列化程序;快速,在语言/平台之间可移植,非常小的输出,版本容错等(当然是免费的)。不过,显然不是 xml - 所以不是人类可读的。

关于c# - XML 序列化的替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1186743/

相关文章:

php - 网格不显示在自定义 magento 模块中

c# - .NET Xml 序列化 : Integer Element with Attribute?

c# - 以编程方式添加 XmlIninclude 属性

c# - FileSystemWatcher 丢失文件

java - 如何在一个 java 应用程序中处理不同版本的 xsd 文件?

c# - 启动多个 winform 后退出应用程序的方法?

python - 抑制 ElementTree 中的命名空间

sql - 将 SQL Server 转储到 XML?

c# - 需要有关 Enumerable.Aggregate 函数的更多详细信息

c# - 使我们最接近 1000 的算法组合