逐步完成Linq语句提示

时间:2012-01-04 15:14:02

标签: c# linq debugging

当我单步执行代码并获取linq语句时,单步执行过程和评估的行(及其顺序)与编写的代码不同。我知道这与诸如yield等命令有关。

我的问题是:

  1. 我需要学习什么才能理解代码的调试方式(使用Linq语句)?
  2. Linq声明的技术是什么?
  3. 哦,我使用的是Visual Studio 2010 Ultimate。

2 个答案:

答案 0 :(得分:2)

根据MSDN

Any query that compiles to an expression tree produces code that is beyond the control of the debugger.

因此,您将无法通过Visual Studio Debugger完全调试Linq查询。

<强>但是

很少有工具可以提供帮助,例如Linq Pad

This page还描述了一些可用于调试Linq语句的技术

This is another有关调试Linq的详细文章

答案 1 :(得分:0)

我不知道有任何其他调试生成的IL code的方法,然后使用 Sos,关于你的二进制文件。你可以做任何事情(如果不是更多)你可以在VS debugging tools做(可能是一个多线程调试的东西,在VS 中更好)。但同样,考虑到LINQ代码不是您在代码文件中看到的代码,而是在编译时生成的IL code,我会说,通过我,这是唯一可行的方法像这样的代码StepInto/Over/Out