2014-04-30 35 views
0

我知道使用反射,我可以在單個程序集中找到類的列表(例如How to get all classes in current project using reflection?)。查找文件目錄中的公共類

有沒有一種方法可以在給定的目錄中使用公共類來實現這一點?

+1

什麼是「*目錄*」?你指的是系統上的實際文件夾?例如, –

+0

,我的項目有一個名爲「fun_classes」的目錄,其中包含一堆用於創建表的SQL類。我期望檢查該目錄並提取類名 - 但同樣可以應用於任何目錄。 – Nodoid

+0

我刪除了我的答案,因爲你包含的鏈接確實包含了一個公共類的答案 – Sayse

回答

1

我假設你的意思是包含一個或多個組件的目錄,如果是的話,你可以做這樣的:

var types = new List<Type>(); 

var paths = Directory.GetFiles("directoryPath", "*.dll", SearchOption.TopDirectoryOnly); 

foreach(var path in paths) 
{ 
    types.AddRange(Assembly.LoadFrom(path).GetTypes()); 
} 

GetTypes方法使用BindingFlags.PublicBindingFlags.Instance通過default.So你不需要指定另外還有BindingFlags參數。

+0

完美 - 謝謝 – Nodoid