我尝试通过反射加载一个类型
我成功找到了包含类型的程序集:
var assembly = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(t => t.GetTypes().Any(g => g.Name == "MyClass"));
但是当我尝试从程序集中加载类型时:
Type t = assembly.GetType("MyClass");
然后t
为空,
我不想使用完整的限定名称加载类型,只需要使用类名。
答案 0 :(得分:7)
如果您不想使用完全符合条件的名称,则需要通过LINQ进行搜索并手动处理案例,其中找到了多个类:
var types = assembly.GetTypes().Where(type => type.Name == "MyClass");
var firstType = types.FirstOrDefault();
记住/教训:程序集中可能有多个具有相同名称的类(具有不同名称空间的类)。