替换XML序列化

Mat*_*ley 24 c# xml xml-serialization

我有代码XmlSerializer用于序列化/反序列化数据结构的持久性.我在StackOverflow上的几个地方读过和听过的XmlSerializer是以下一个或多个:

  • 支持/实施不力
  • 可能不会支持未来

我的问题是双重的; 以上是否属实,若有,有哪些替代方案?就我的目的而言,XML工作得非常好,我希望保持这种不变,但其他一切都可以改变.

编辑:如果你想建议XML的其他东西,我会接受它,但它确实需要人类可读.

Mar*_*ell 14

XmlSerializer 完全可以支持,但有一些小问题;

  • 比较慢; 但通常这仍然足够快
  • 只支持公众成员; 可能是一种痛苦
  • 需要写访问者列表 - 只是丑陋

但是,我希望它能继续存在相当长的时间; IMO,它BinaryFormatter具有真正的问题(当用于持久性时).

我很偏颇(因为我是作者),但我会选择protobuf-net ; 使用谷歌"协议缓冲"线格式的二进制序列化器; 快速,可在语言/平台之间移植,输出非常小,版本容忍等(当然也是免费的).显然不是xml,所以不是人类可读的.

  • 对于远程处理,您可以在每个对象的大约4行代码中实现`ISerializable`(通过protobuf-net); 我能得到的最好的东西......这只是"根"对象所必需的(不是封装的东西).对于人类可读...也许是JSON.Net? (2认同)
  • JSON是一个有趣的建议,它甚至没有让我想到......我会调查它,欢呼. (2认同)
  • 请注意,这只是"考虑".如果你的xml目前工作,那么就有**零**理由改变任何东西. (2认同)