我需要将一棵简单对象的树序列化为XML并存储到文件中。自从我上次这样做以来,世界发生了变化...
(我不关心XML的模式,只要支持人员能够理解该文件即可)
那么,在选择.NET中不同的“易于使用的XML” API时需要考虑哪些权衡?
(我不关心XML的模式,只要支持人员能够理解该文件即可)
那么,在选择.NET中不同的“易于使用的XML” API时需要考虑哪些权衡?
XmlSerializer
基本上已经被冻结 - 可能不会有新的开发,只有最关键的错误修复。 - John SaundersDataContractSerializer
并不一定会生成“典型”的xml,而且您对输出的控制很有限。但是,如果需要完整图形,则支持它。如果您想要xml,并且不需要完整图形,则我倾向于使用XmlSerializer
- 它将避免编写任何手动遍历数据的代码(如XmlDocument
或XDocument
),但仍然给您控制权。
一个警告: XmlSerializer
对您的类型有要求(public,public无参数构造函数,限于public成员,没有序列化回调等)。通常它们不是问题。
但是,我可能会写二进制而不是xml;p(只是不用BinaryFormatter
,因为它有....小毛病)。