如何获得 C# 代码的 IL 代码?我可以使用外部库执行此操作,还是存在内部函数?
编辑:我想用 MessageBox 在我的应用程序中显示 IL 代码。
问问题
14625 次
6 回答
30
以编程方式?您可以使用反射来获取 a MethodInfo
,然后调用MethodBase.GetMethodBody
以获取正文。您可以从MethodBody
中调用GetILAsByteArray
。
当然,如果您只是想自己检查一下,还有Reflector、dotPeek、 ildasm (.NET SDK 的一部分),毫无疑问还有其他工具......
于 2011-07-04T18:22:27.017 回答
6
像这样使用 IL 反汇编程序:
c:\il>csc Class.cs
c:\il>ildasm /output=Class.il Class.exe
你们都将拥有 IL 和 exe。
于 2011-07-04T18:22:55.587 回答
5
只需打开 Visual Studio 命令提示符并键入ildasm - 使用 ildasm 您可以打开任何程序集并显示生成的 IL。
于 2011-07-04T18:23:06.217 回答
1
看看 LinqPad,它有查看 IL 的选项。
于 2011-07-04T18:23:47.297 回答
1
或者,
Start -> Programs -> Microsoft .NET Framework SDK (Version) -> Tools -> MSIL Disassembler
于 2011-07-04T18:25:33.947 回答
0
这是一个很老的问题,但我想补充一些准确性。
GetMethodBody()
最多会给你一个字节数组,你需要手动解析它(这可能会很痛苦,因为一些操作码有两个字节)以获得人类可读的文本。
我只想提到ILSpy作为替代解决方案。
它是开源的,这意味着您可以对其进行调试并将其集成到您的解决方案中。
于 2016-05-03T12:13:00.643 回答