2013-04-30 58 views
0

我需要從DLL中獲取公共方法的列表。我見過幾篇關於使用Reflection和處理LoadExceptions的文章。這似乎並不適用於我的情況。當我捕獲異常並嘗試使用e.Type時,我從程序集中的3種類型中獲得1個。我已經知道所有的方法,參數等,我所需要的只是獲得程序集中列出的類的列表。從DLL獲取公共方法的列表

除asm.GetTypes之外還有其他方法嗎?

+3

GetTypes是正確的路要走;如果你想要私有/靜態/嵌套/ etc類,你需要指定BindingFlags。分享你的代碼,人們可以幫助你。 – EricLaw 2013-04-30 22:53:33

+6

1)您可以發佈您正在使用的代碼,以便我們可以提出改進建議嗎? 2)您可能對'GetExportedTypes'感興趣,因爲您只需要公共類型。 3)你問題的標題表明你想要的方法,但你的實際問題似乎是關於類型。請編輯以對齊它們。 – vcsjones 2013-04-30 22:53:39

回答

1

好的,我找到了。這種組合適用於獲得所有類的列表,而不必處理相關性:

Assembly assembly = Assembly.LoadFrom(filename); 
Type[] types = assembly.GetTypes(); 

這讓我類型的列表,這實在是我是什麼了。我沒有試圖執行任何操作,只是獲取所有類型的列表。