2017-03-28 16 views
1

我在運行時使用反射創建了一個類。我需要創建我的反射類型的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」。我需要創建List的ReportRecord的集合。

回答

3
var listType = typeof(List<>).MakeGenericType(TP); 
var list = (IList)Activator.CreateInstance(listType); 

但是請注意,這不是一個List<dynamic>;那不是「差異」如何工作。你可以,但是,對待各個元素dynamic它是否適合你:

foreach(dynamic item in list) {...} 
+1

您只差太快;-) –

+0

MyClassBuilder MCB =新MyClassBuilder( 「ReportRecord」); var myclass = MCB.CreateMyProperty(myTable.Columns); 類型TP = myclass.GetType(); var myObject = Activator.CreateInstance(TP); List ccc = new List ();我需要List 。動態不適用於我的情況。 – user3771120

+1

@ user3771120恩 - 是不是已經在問題中了? –