2010-08-10 88 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),然後獲取方法體。

相關問題