2009-04-03 25 views
18

Tôi đang cố gắng tìm hiểu một số LINQ to XML, và tôi đã xem xét hàm XPathSelectElement trong XElement. Chức năng này dường như chỉ là những gì tôi cần, nhưng vì lý do nào đó, tôi không thể sử dụng nó! Kiểm tra mã của tôi:Có điều gì sai với thư viện System.Xml.Linq của tôi không?

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

Tôi đã bao gồm tham chiếu đến System.Xml.Linq ở mọi nơi cần thiết. Tất cả những thứ khác trong thư viện mà tôi đã thử dường như đang hoạt động, nhưng XPathSelectElement thậm chí không xuất hiện trong Intellisense trong phòng thu trực quan.

Khi xây dựng các mã trên, tôi nhận được lỗi sau:

Error 1 'System.Xml.Linq.XElement' does not contain a definition for 'XPathSelectElement' and no extension method 'XPathSelectElement' accepting a first argument of type 'System.Xml.Linq.XElement' could be found (are you missing a using directive or an assembly reference?) C:\PageHelpControl\PageHelp.cs 155 50 HelpControl

Trả lời

49

Các phương pháp bạn đang cố gắng sử dụng là menthods mở rộng. Bạn cần phải bao gồm không gian tên System.Xml.XPath.

14

Chỉ cần để buộc hai câu trả lời với nhau ...

XPathSelectElement là một phương pháp mở rộng. Để sử dụng nó như một phương pháp mở rộng (ví dụ như thể nó là một phương pháp dụ trên XNode), bạn cần phải có một chỉ thị using trong mã nguồn của bạn cho không gian tên có liên quan:

using System.Xml.XPath; 

(Đó là nơi mà các lớp Extensions trong đó có cuộc sống phương pháp khuyến nông.)

này hoạt động trong cùng một cách mà bạn cần using System.Linq; trong mã của bạn trước khi bạn có thể sử dụng Select, Where vv trên IEnumerable<T>.

Các vấn đề liên quan