想要在Assembly.LoadFrom()的List <T>中创建要使用的客户类型

Tre*_*vor 2 .net c# reflection list

标题说明了一切,但这里有一些示例代码

Assembly a = Assembly.LoadFrom(trustMeThePathIsRight);
Type test = a.GetType("Full.Path.Of.Desired.Type");
List<test> blah = new List<test>;
Run Code Online (Sandbox Code Playgroud)

但它说无法找到类型或命名空间.基本上,我如何使用从创建程序集引用中获得的类型?

p.s*_*w.g 5

简而言之,你不能那样使用它.在编译时指定的类型参数必须在编译时知道.唯一的选择是使用反射:

Assembly a = Assembly.LoadFrom(trustMeThePathIsRight);
Type test = a.GetType("Full.Path.Of.Desired.Type");
Type listType = typeof(List<>).CreateGenericType(test);
IList blah = (IList)Activator.CreateInstance(listType);
Run Code Online (Sandbox Code Playgroud)

当然这里的问题是类型仍然未知,所以你不会得到编译时类型检查.