将C#代码转换为IL代码

我如何获得C#代码的IL代码? 我可以使用extern库或内部函数吗?

编辑:我想用我的应用程序在MessageBox中显示IL代码。

编程? 您可以使用reflection来获取MethodInfo ,然后调用MethodBase.GetMethodBody来获取正文。 从MethodBody ,您可以调用GetILAsByteArray等。

当然,如果您只想自己检查一下,那就是Reflector , dotPeek ,ildasm(.NET SDK的一部分),毫无疑问是其他工具……

像这样使用IL反汇编程序:

 c:\il>csc Class.cs c:\il>ildasm /output=Class.il Class.exe 

你们都有IL和exe。

只需打开Visual Studio命令提示符并键入ildasm – 使用ildasm即可打开任何程序集并显示生成的IL。

要么,

 Start -> Programs -> Microsoft .NET Framework SDK (Version) -> Tools -> MSIL Disassembler 

看看LinqPad,它可以看到IL。

这是一个很老的问题,但我想补充一些准确性。

GetMethodBody()最多会给你一个字节数组,你需要手动解析(这可能很痛苦,因为一些操作码有两个字节)来获取人类可读的文本。

我只想提一下ILSpy作为替代解决方案。

它是开源的,这意味着您可以在解决方案中对其进行调试并与其集成。