5

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

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

4

3 回答 3

8

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

XmlReader 相对于 LINQ 的一个优势是它不在内存中构建 DOM,而是在现有流上移动。但是,只有当您可以在流到达时开始处理流而不是等待整个内容到达时,这种差异才会真正体现出来。这种优势很难实现,而且很少有用。

LINQ to XML 的查询更加直接,使用起来也更加灵活,但代价是一些额外的内存。

于 2009-07-20T21:56:55.407 回答
4

Linq to XML 的优点

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

使用 XmlReader 的优点

  • 更精细地控制查询语法(XPath 而不是 LINQ)

...就我个人而言,当 LINQ to XML 第一次被引入时,我就切换到了它,并且从未回头。到目前为止还没有注意到任何显着的性能下降。

于 2009-07-20T16:30:58.793 回答
2

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

于 2010-05-19T11:37:00.393 回答