我们可以从.dll文件中检索方法体吗?

时间:2010-08-10 09:01:40

标签: .net c#-3.0

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

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

3 个答案:

答案 0 :(得分:2)

好吧,你可以使用MethodBase.GetMethodBody()检索方法体,它可以获得原始IL,局部变量等。

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

答案 1 :(得分:1)

您可以使用Reflector等逆向工程工具。 (请注意,根据具体情况,这可能是非法的。)

此外,我不确定这是否是您在问题中的“在C#.Net”部分的正确答案,因为这是一个外部工具,而不是您可以通过自己的C#代码轻松完成的事情。为此你需要解释你可以通过反思得到的IL(见Jon Skeets answer)你自己

答案 2 :(得分:0)

如果您要检索方法的代码,除非它附加到.dll,我认为您无法检索它。

换句话说,也许你的意思是: http://msdn.microsoft.com/en-us/library/system.reflection.methodbody%28v=VS.80%29.aspx

希望它会对你有所帮助 问候