将C#代码转换为IL代码

时间:2011-07-04 18:19:30

标签: c# .net il

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

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

6 个答案:

答案 0 :(得分:24)

编程?您可以使用反射来获取MethodInfo,然后调用MethodBase.GetMethodBody来获取正文。从MethodBody开始,您可以致电GetILAsByteArray等。

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

答案 1 :(得分:6)

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

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

你们都有IL& exe。

答案 2 :(得分:3)

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

答案 3 :(得分:1)

或,

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

答案 4 :(得分:0)

看看LinqPad,它可以看到IL。

答案 5 :(得分:0)

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

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

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

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