HI, 我有要求在运行时使用反射为列表对象创建实例。比如我有2类,如下面,如何使用反射在C#文件中创建列表<T>实例使用反射
class Class1
{
List<Class2> class2List;
public List<Class2> Class2List
{
get;set;
}
}
class Class2
{
public string mem1;
public string mem2;
}
另一类Class3
在运行时创建的Class1
实例后,我想分配值类的所有属性。在这种情况下,Class2List
是List<Class2>
的财产。 在运行时,我不知道List<Class2>
的班级类型。如何在运行时初始化属性,即类别List<Class2>
。
任何建议都非常赞赏...
而不是为GetConstructor和Invoke调用创建零长度的数组,您可以使用'Type.EmptyTypes'作为GetConstructor,并将'null'传递给Invoke。此外,你必须投入由Invoke返回的对象:'var listInstance =(IList)(typeof(List <>).MakeGenericType(listElemType).GetConstructor(new Type [0]).Invoke(new object [0] ));' – phoog 2011-05-06 16:18:24
谢谢 - 我知道'Type.EmptyTypes'和'null'到'Invoke',但我只是很快就把它撞出来......然而,失败的演员是因为我想添加IList一点之后,我会痛骂代码! 将更新。 – 2011-05-06 16:29:42
就像我在找什么 – ArhiChief 2015-04-03 10:40:01