反射、泛型和多个程序集

本文关键字:程序集 泛型 反射 | 更新日期: 2023-09-27 17:49:19

我想解决这个问题:

Type.GetType("Class1'[[Class2]]")

其中Class1Class2在不同的组合中。

我可以解析程序集并找到Class1类型以及Class2类型,但是我如何获得Class1<Class2>类型?

反射、泛型和多个程序集

如果你能找到所有你需要的类型:

Type class1Type = assembly1.GetType("Class1"); //or however you are able to get this type
Type class2Type = assembly2.GetType("Class2"); //or however you are able to get this type
Type genericType = class1Type.MakeGenericType(class2Type);

genericType类似于typeof(Class1<Class2>)

我想,它应该是这样的:

Type.GetType("Class1`1[Class2]");

注意:我改变了' to '的撇号,并增加了通用参数的数量。

如果这还不够,请尝试指定类,包括名称空间和程序集:

Type.GetType("Namespace1.Class1`1[[Namespace2.Class2, Assembly2]], Assembly1");