我有使用 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/