LINQ to XML与XmlReader

时间:2009-07-20 16:18:35

标签: silverlight linq-to-xml xmlreader

在我的Silverlight应用程序中,我主要使用的是XmlReader,但我正在尝试用LINQ to XML替换XmlReader实现。

Silverlight中LINQ to XML和XmlReader之间的优缺点是什么?

3 个答案:

答案 0 :(得分:8)

我只想在Silverlight中使用LINQ to XML。

XmlReader对LINQ的一个优点是它不在内存中构建DOM,而是在现有流上移动。然而,如果你可以开始处理流的到来而不是等待整个内容到达,那么这种差异才会真正发挥作用。这种优势很难实现,而且很少有用。

LINQ to XML可以更直接地进行查询,并且使用起来更加灵活,权衡是一些额外的内存。

答案 1 :(得分:4)

Linq对XML的支持

  • 使用与您习惯的相同LINQ语法查询XML文档
  • 使用您习惯使用的相同X对象(XElement等)

使用XmlReader

的PRO
  • 对查询语法(XPath而不是LINQ)进行更细粒度的控制

...就个人而言,我在第一次推出时切换到LINQ to XML,从不回头。尚未发现任何明显的性能下降。

答案 2 :(得分:2)

LINQ to XML更容易,但它需要在System.XML.Linq中引用,这会增加Silverlight应用程序需要加载的程序集数量。因此,根据您的情况和您的提要,使用XMLReader有时很有用。