【问题标题】:VS2015 LINQ in debugger watch window调试器监视窗口中的 VS2015 LINQ
【发布时间】:2015-12-14 13:04:39
【问题描述】:

根据我的来源Debugging lamba expression with VS2015,LINQ 应该在调试器的监视窗口中工作。但是,我仍然收到以下错误:

错误 CS1061:“IEnumerable”不包含“Where”的定义,并且找不到接受“IEnumerable”类型的第一个参数的扩展方法“Where”(您是否缺少 using 指令还是程序集参考?)

我必须打开一些选项吗?如何在监视窗口中启用 LINQ? System.Linq 包含在我当前正在调试的文件中。

【问题讨论】:

  • 在运行时运行代码是否有效?
  • “运行时”是什么意思?
  • 如果你错过了using,我在徘徊,但似乎没有......而且我也刚刚注意到你正在尝试与 2015 年相比。
  • 当错误发生时,您应该能够将鼠标悬停在 Linq 变量上以找出当前值。该错误表明 Linq 变量不是 List 对象。仅当变量是可以枚举的列表时,Where 才有效。如果对象是一个类,那么你必须使类 IEnumerable 或添加一个列表对象到可以枚举的类中。
  • 不,所有设置都是一样的。我还创建了一个可以工作的示例解决方案,我当前的解决方案似乎有一些特定的东西阻止了调试器的监视窗口中的 LINQ...

标签: c# linq visual-studio visual-studio-2015 watch-window


【解决方案1】:

我发现了问题:Mono.Cecil 重写的程序集目前不支持调试器中的扩展方法评估(包括 LINQ 扩展方法)。一旦我有解决方法,我会扩展这个答案。

这里是 Mono.Cecil GitHub 问题的链接:https://github.com/jbevain/cecil/issues/90

【讨论】:

  • 对于任何感兴趣的人:问题已在 cecil 的主分支上得到解决。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-23
  • 1970-01-01
  • 1970-01-01
  • 2016-05-21
  • 2017-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多