Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何调试/打印/获取运行时生成代码的概述?_C#_Code Generation_Expression Trees - Fatal编程技术网

C# 如何调试/打印/获取运行时生成代码的概述?

C# 如何调试/打印/获取运行时生成代码的概述?,c#,code-generation,expression-trees,C#,Code Generation,Expression Trees,我正在运行时使用表达式树生成冗长的代码。但是一旦我完成了表达式.Lambda(methodBody,objArg).Compile()所有的东西都变成了一个黑盒子。我想知道,最好的方法和工具是什么 如果出现故障,是否进行调试?我还没有找到一种单步调试的方法 我的代码 获取生成的IL的概述 关于第2点。您可以使用Microsoft提供的工具。本文描述了一段代码…可能-AFAIK LINQPad正在使用它,我猜是为了反汇编代码。还有这篇MSDN文章:-在VS2010中有一个示例表达式树可视化工具,在

我正在运行时使用表达式树生成冗长的代码。但是一旦我完成了
表达式.Lambda(methodBody,objArg).Compile()
所有的东西都变成了一个黑盒子。我想知道,最好的方法和工具是什么

  • 如果出现故障,是否进行调试?我还没有找到一种单步调试的方法 我的代码
  • 获取生成的IL的概述
  • 关于第2点。您可以使用Microsoft提供的工具。本文描述了一段代码…可能-AFAIK LINQPad正在使用它,我猜是为了反汇编代码。还有这篇MSDN文章:-在VS2010中有一个示例表达式树可视化工具,在VS2012中该工具是内置的。建议将lambda添加到动态程序集,然后将其转储到dll并使用反汇编程序查看。此外,您还可以将from MSDN用于实时(调试)IL视图。