XML序列化还是从XML对象读取?

| 我需要阅读不同的XML文件。我想知道是否应该将文件反序列化为自定义对象,还是只使用
XDocument
对象和Linq-to-XML读取数据。 文件的大小从1-2kb到3mb +,并且不同的对象也具有复杂性(有些具有属性,有些具有子级,有些既有子级,有些没有)。 我认为与Linq-to-XML相比,使用这些对象会更容易,但是创建这些对象将需要一些时间。对于何时反序列化(而不是Linq),是否有任何经验法则或建议? 谢谢你的帮助!     
已邀请:
这实际上取决于您对数据的处理方式。如果您没有使用XML文档提供的所有信息,那么基于LINQ的方法可能是最简单的。考虑采用RSS提要,仅跟踪文章日期,仅此而已。在这种情况下,使用反序列化技术并不能真正为您做任何事情。 如果您正在使用XML文档中几乎所有的数据,并且其结构反映了对象模型的结构,则可以对它进行反序列化。这是我一直在做的事情,例如设置文件,甚至简单的文件格式。 在您的情况下,听起来好像已经存在,并且是由某些外部源创建的,并且您的代码中还没有对象的数据表示形式,因此建议您使用基于LINQ的方法。另外,您提到了文件中的许多变化,因此LINQ的灵活性将再次派上用场。但是,根据您的描述,这是一个疯狂的猜测。     
您可以使用xsd.exe工具,从给定的XML文件中生成这些类:
C:\\work>xsd test.xml
C:\\work>xsd /classes test.xsd
真的没有经验法则。我个人更喜欢使用强类型的对象,除非文件大小变大,在这种情况下,我会切换到XmlReader。     

要回复问题请先登录注册