Ответ 1
Методы, которые вы пытаетесь использовать, - это мантоны расширения. Вам нужно включить пространство имен System.Xml.XPath.
Я пытаюсь изучить некоторые вещи Linq для XML, и я столкнулся с функцией XPathSelectElement в XElement. Эта функция, похоже, делает то, что мне нужно, но по какой-то причине я не могу ее использовать! Проверьте мой код:
XElement rootElement = XElement.Load(dataFile);
XElement parentElement = rootElement.XPathSelectElement(xPath);
Я включил ссылки на System.Xml.Linq везде, где это необходимо. Все остальные вещи в той библиотеке, которую я пробовал, похоже, работают, но XPathSelectElement даже не появляется в Intellisense в визуальной студии.
При создании вышеуказанного кода я получаю следующую ошибку:
Ошибка 1 'System.Xml.Linq.XElement' не содержит определения для "XPathSelectElement" и без расширения метод "XPathSelectElement" принимает первый аргумент типа "System.Xml.Linq.XElement" может быть найдено (вам не хватает директива или сборка ссылка?) C:\PageHelpControl\PageHelp.cs 155 50 HelpControl
Методы, которые вы пытаетесь использовать, - это мантоны расширения. Вам нужно включить пространство имен System.Xml.XPath.
Просто, чтобы связать два ответа вместе...
XPathSelectElement
- это метод расширения. Чтобы использовать его как метод расширения (т.е. Как если бы это был метод экземпляра на XNode
), вы должны иметь директиву using
в ваш исходный код для соответствующего пространства имен:
using System.Xml.XPath;
(Что там, где живет Extensions
класс, который содержит метод расширения.)
Это работает так же, как вам нужно using System.Linq;
в вашем коде, прежде чем вы сможете использовать Select
, Where
и т.д. на IEnumerable<T>
.