运行时类型的复杂生成
本文关键字:复杂 类型 运行时 | 更新日期: 2023-09-27 18:36:29
我需要在运行时创建一个List<T>
类型:我有一个字符串,表示列表中单个项目的类型 ( T
) 和一个对象数组。我的问题是:我如何获得List<T>
?
我希望我解释了自己:)
谢谢
首先,你确定要这样做吗?闻起来像设计缺陷。
下面是如何执行此操作的示例:
var stringType = Type.GetType("System.String");
var listType = typeof (List<>);
var stringListType = listType.MakeGenericType(stringType);
var list = Activator.CreateInstance(stringListType) as IList;
list.Add("Foo");
list.Add("Bar");
list.Add("Baz");
你可以使用这样的东西:
Type itemType = Type.GetType("my type name as string");
Type listType = typeof(List<>).MakeGenericType(itemType);
return (IList) Activator.CreateInstance(listType);