我需要从C#中的.dll文件中检索方法体。我正在使用System.Reflection
来检索方法名称,参数和属性等,但没有找到检索方法体的方法。
请建议我一些想法......: - )
答案 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
希望它会对你有所帮助 问候