我知道使用反射我可以在单个程序集中找到类列表(例如How to get all classes in current project using reflection?)。
有没有办法只使用给定目录中的公共类来执行此操作?
答案 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.Public
和BindingFlags.Instance
。因此,您不需要另外指定BindingFlags
参数。