我有要求从C#中的.dll文件中检索方法体。我使用System.Reflection
来检索方法名称,参数和属性等,但没有找到方法来检索方法体。我们可以从.dll文件中检索方法体吗?
请建议我一些想法... :-)
我有要求从C#中的.dll文件中检索方法体。我使用System.Reflection
来检索方法名称,参数和属性等,但没有找到方法来检索方法体。我们可以从.dll文件中检索方法体吗?
请建议我一些想法... :-)
你可以使用逆向工程工具,如Reflector。 (请注意,这可能是非法的,取决于具体情况。)
另外我不确定这是否是针对“C#.Net”部分问题的正确答案,因为这是一个外部工具,而不是您可以轻松地从自己的C#代码中完成的任务。对于那些你需要解释IL可以通过反射得到(见Jon Skeets answer)自己
我只是不想使用反射器 – 2010-08-10 09:18:53
那么,你可以检索使用MethodBase.GetMethodBody()
局部变量方法体,它可以让你的原始IL等
显然你需要首先加载程序集(例如用Assembly.Load
),然后获取相关类型(Assembly.GetType
),然后找到方法(Type.GetMethod
),然后获取方法体。
那么,如果你的意思是检索方法的代码,除非它附加到.dll,我不认为你可以检索它。
通过其他方式,也许你的意思是这样的: http://msdn.microsoft.com/en-us/library/system.reflection.methodbody%28v=VS.80%29.aspx
希望它会帮助你 问候
究竟什么是你想怎么办?你为什么需要方法体? – Burt 2010-08-10 09:07:58
其实我正在努力跟踪在以前版本的.dll – 2010-08-10 09:17:12
中所做的更改所以我需要获取更改发生的方法主体 – 2010-08-10 09:17:37