我的System.Xml.Linq库有什么问题吗?

时间:2009-04-03 15:02:51

标签: .net linq dll

我正在尝试学习一些Linq to XML的东西,我在XElement中遇到了XPathSelectElement函数。这个功能似乎只是我需要的,但由于某种原因,我不能使用它!看看我的代码:

        XElement rootElement = XElement.Load(dataFile);
        XElement parentElement = rootElement.XPathSelectElement(xPath);

我在所需的任何地方都包含对System.Xml.Linq的引用。我尝试过的那个库中的所有其他东西似乎都在工作,但XPathSelectElement甚至没有出现在visual studio的Intellisense中。

构建上述代码时,出现以下错误:

  

错误1'System.Xml.Linq.XElement'   不包含的定义   'XPathSelectElement'并没有扩展名   方法'XPathSelectElement'接受   类型的第一个参数   'System.Xml.Linq.XElement'可以   发现(你错过了使用   指令或程序集   参考?)C:\ PageHelpControl \ PageHelp.cs 155 50 HelpControl

2 个答案:

答案 0 :(得分:53)

您尝试使用的方法是扩展方法。您需要包含System.Xml.XPath命名空间。

答案 1 :(得分:15)

将这两个答案联系在一起......

XPathSelectElement是一种扩展方法。要将用作扩展方法(即好像它是XNode上的实例方法),您需要在相应命名空间的源代码中使用using指令:

using System.Xml.XPath;

(这就是包含扩展方法的Extensions类所在的位置。)

这与您在代码中需要using System.Linq;的方式相同,然后才能在Select上使用WhereIEnumerable<T>等。