Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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# 有没有办法以可读的形式从.NET程序集中检索编译器生成的代码?_C#_.net_Il_Reflector_Ildasm - Fatal编程技术网

C# 有没有办法以可读的形式从.NET程序集中检索编译器生成的代码?

C# 有没有办法以可读的形式从.NET程序集中检索编译器生成的代码?,c#,.net,il,reflector,ildasm,C#,.net,Il,Reflector,Ildasm,例如,如果程序集中的某个C#类有一个属性property,编译器会生成set_property和get_property方法,或者如果有lambda,编译器还会生成helper类C#u DisplayClass或类似的内容。当我使用ILDasm分解程序集时,我可以看到它们,但ILDasm向我显示了IL代码,这不太便于阅读。另一方面,如果我使用ILSpy或Reflector,它们会显示我编写的代码,而不会显示编译器生成的类和方法。有没有半途而废的方法,它允许查看编译器生成的类和方法,但在某种程度上

例如,如果程序集中的某个C#类有一个属性
property
,编译器会生成
set_property
get_property
方法,或者如果有lambda,编译器还会生成helper类
C#u DisplayClass
或类似的内容。当我使用ILDasm分解程序集时,我可以看到它们,但ILDasm向我显示了IL代码,这不太便于阅读。另一方面,如果我使用ILSpy或Reflector,它们会显示我编写的代码,而不会显示编译器生成的类和方法。有没有半途而废的方法,它允许查看编译器生成的类和方法,但在某种程度上是可读的,至少比IL更可读?

哦,我的问题似乎相当愚蠢,因为ILSpy,JustDecompile,我怀疑,还有其他反编译器,都可以选择阻止lambdas的反编译。

,使用ILSpy或反射器。他们所做的工作,将IL转换回可读的C#代码,是非常不寻常的,在库中通常不可用。@HansPassant但如果我只是出于好奇,想看看特定的lambda是如何在幕后实现的呢?的确如此。至少在其中一个版本上,它是通过选择“.NET 2.0”代码激活的,同时选择更高版本的lambdas。