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