2

昨晚我在使用 WP7.1 进行原型设计时遇到了这个问题。

我有一个类库,用作所有数据访问的存储库。在这个类库中,我正在进行 REST 调用并获取 XML。到目前为止,一切都在工作。从返回的流中,我将其变成了 XElement。然后当我做类似的事情XElement.Elements()或者XElement.Descendents()当我查看System.Collections.IEnumerator.Current成员时收到以下异常。(我不确定它为什么这么说,但这就是我在展开对象时看到的)

'System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement>' does not contain a definition for 'System' and no extension method 'System' accepting a first argument of type 'System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement>' could be found (are you missing a using directive or an assembly reference?)

在这一点上,我对自己认为这是一个命名空间问题,所以我编写了以下代码并收到相同的异常。

var f = new XElement("Foo", new XElement("Bar", 1));
var b = f.Elements("Bar");

错误...

非常感谢您对此问题的任何帮助。我真的很想使用 linq-to-xml 而不是一堆循环来构造我的对象。

4

2 回答 2

1

我想这在延迟执行中按预期工作。

ToList当我在集合上调用 a或类似的东西时,我得到了预期的结果。我想当我尝试在断点期间评估表达式时(上述异常),在这种情况下一定存在错误或某些东西。我想我太相信调试器了:)

于 2012-04-17T21:37:23.887 回答
1

当您执行 linq 操作并将其分配给“var”变量时,真正发生的是查询指令存储在其中。不是实际的数据集存储在上面。当您尝试从中访问数据时,该指令将被执行,您将获得数据。这就是为什么您在断点上看不到任何数据的原因。

于 2012-04-18T06:01:44.087 回答