2015-05-01 95 views
0

代碼波紋管產生一個錯誤,我不知道如何解決它:如何解決這個智能感知錯誤(XContainer ::元)

XElement^ root = XElement.Load("data.xml"); 
String^ location; 
location = root->Element("location")->Value; 

這是錯誤:

智能感知:(爲const char [10])

對象類型是::系統XML ::沒有的功能實例的 「系統:: XML :: LINQ的::的XElement ::元素」 參數列表 參數類型相匹配:: Linq :: XElement^

我該如何解決?

回答

0

XElement的確有一個Element method,但它只需要一個XName作爲它的唯一參數,而不是char數組。通過XName實例而不是"location",並且錯誤應該消失。

+0

C++/CLI不處理從'string'到'XName'的隱式轉換嗎? –

+0

@JonSkeet:顯然不是,但我很可能是錯的。 (你的意思是[因爲這個隱式轉換運算符](https://msdn.microsoft.com/en-us/library/system.xml.linq.xname.op_implicit(v = vs.110).aspx)?如果參數的類型是'String ^',但它是一個'char []'),那麼它應該可以工作。)我幾乎不知道C++/CLI,所以我的答案不應該被當作福音。 – stakx

+0

謝謝,我把字面量改爲一個String ^類型的變量,它工作。這很奇怪,因爲我在互聯網上看到了幾個C++/CLI例子,並且他們對Element的使用就像我的一樣。 MSDN沒有該方法的C++/CLI示例。 – Newbie