将C#代码转换为IL代码

本文关键字:代码 IL 转换 | 更新日期: 2023-09-27 18:01:12

如何获取C#代码的IL代码?我可以使用外部库或存在内部函数来完成此操作吗

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

将C#代码转换为IL代码

编程?您可以使用反射来获取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。

看看LinqPad,它有查看IL的选项。

OR,

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

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

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

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

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