我有要求從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