将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作为替代解决方案。
它是开源的,这意味着您可以在解决方案中对其进行调试并与其集成。