在文件目录中查找公共类

时间:2014-04-30 15:08:34

标签: c# reflection system.reflection

我知道使用反射我可以在单个程序集中找到类列表(例如How to get all classes in current project using reflection?)。

有没有办法只使用给定目录中的公共类来执行此操作?

1 个答案:

答案 0 :(得分: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。因此,您不需要另外指定BindingFlags参数。