2015-05-01 94 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