想要创建一个自定义类型以在<T> Assembly.LoadFrom() 的列表中使用的



标题说明了一切,下面是一些示例代码

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

但是它说找不到类型或名称空间。从本质上讲,我如何使用从创建程序集引用获得的类型?

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

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);

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

相关内容

  • 没有找到相关文章

最新更新