2017-03-28 17 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); リスト ccc =新しいリスト(); List が必要です。私の場合、ダイナミックは機能しません。 – user3771120

+1

@ user3771120 uh - それはまだ質問にはありませんか? –

関連する問題