我在运行时使用反射创建了一个类。我需要创建一个反射类型的List集合。怎么做 ?
MyClassBuilder MCB = new MyClassBuilder("ReportRecord");
var myclass = MCB.CreateMyProperty(myTable.Columns);
Type TP = myclass.GetType();
var myObject = Activator.CreateInstance(TP);
List<dynamic> ccc = new List<dynamic>();
在上面的代码中,我创建了一个类“ReportRecord”。我需要创建ListRecord的集合。
答案 0 :(得分:3)
var listType = typeof(List<>).MakeGenericType(TP);
var list = (IList)Activator.CreateInstance(listType);
但请注意,这不是List<dynamic>
;这不是“差异”的工作方式。但是,您可以将单个元素视为dynamic
,如果它适合您:
foreach(dynamic item in list) {...}