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