2010-08-10 65 views
0

我有要求从C#中的.dll文件中检索方法体。我使用System.Reflection来检索方法名称,参数和属性等,但没有找到方法来检索方法体。我们可以从.dll文件中检索方法体吗?

请建议我一些想法... :-)

+1

究竟什么是你想怎么办?你为什么需要方法体? – Burt 2010-08-10 09:07:58

+0

其实我正在努力跟踪在以前版本的.dll – 2010-08-10 09:17:12

+0

中所做的更改所以我需要获取更改发生的方法主体 – 2010-08-10 09:17:37

回答

1

你可以使用逆向工程工具,如Reflector。 (请注意,这可能是非法的,取决于具体情况。)

另外我不确定这是否是针对“C#.Net”部分问题的正确答案,因为这是一个外部工具,而不是您可以轻松地从自己的C#代码中完成的任务。对于那些你需要解释IL可以通过反射得到(见Jon Skeets answer)自己

+0

我只是不想使用反射器 – 2010-08-10 09:18:53

2

那么,你可以检索使用MethodBase.GetMethodBody()局部变量方法体,它可以让你的原始IL等

显然你需要首先加载程序集(例如用Assembly.Load),然后获取相关类型(Assembly.GetType),然后找到方法(Type.GetMethod),然后获取方法体。

相关问题