我需要将一个简单对象树序列化为XML文件 - 自从我上次不得不这样做以来世界已经发生了变化......
(我不关心XML的架构,如果需要,支持人员可以理解该文件)
那么在.net中选择不同的“easy xml”API时要考虑的权衡是什么?
答案 0 :(得分:4)
这就是我考虑选项的方式:
LINQ to XML - 完全控制XML和对象的设计,是3个选项中任意一个的最多代码。
DataContractSerializer - 很少或根本无法控制XML,可以处理大多数对象
XmlSerializer - 完全控制XML,但您必须以Xml序列化喜欢的方式设计对象。
答案 1 :(得分:3)
DataContractSerializer
不一定会发出“典型”xml,并且您无法控制输出。但是,如果需要,它确实支持完整图表。如果您需要xml,并且不需要完整图表,我会倾向于XmlSerializer
- 它将避免编写任何代码来手动遍历数据(ala XmlDocument
或{{1} }),但给你控制。
一个警告:XDocument
对您的类型提出要求(公共,公共无参数构造函数,仅限于公共成员,没有序列化回调等)。它们通常不是问题。
但是,我可能会写二进制而不是xml; p(只是没有XmlSerializer
,它有......扭结)。