型とジェネリック型が変数として定義されている新しいオブジェクトをインスタンス化したいと思います。最終的な結果は、手動で、ここで作成したnewListOfObjectsのようになります。変数のみを使用して、新しいオブジェクトをインスタンス化しようとしたとき変数からジェネリック型をインスタンス化する
public class TabViewModel
{
public string Title { get; set; }
public int TabOrder { get; set; }
}
問題が来る:TabViewModelは、次のオブジェクトである
var newListOfObjects = new List<TabViewModel>();
。 1つのジェネリック型の変数genericTypeがあります。これは、インタフェースであり、型引数listOfTypeArgsのリストです。上記の例では、ジェネリック型はIListで、引数はTabViewModelです。その後、(、いくつかのコードが理解しやすくするためのpsudoあるノート)を次のようになります。
Type genericType = IList'1;
Type[] listOfTypeArgs = TabViewModel;
var newObject = Activator.CreateInstance(genericType.MakeGenericType(listOfTypeArgs));
私が私がインスタンス化することはできませんとエラー「System.MissingMethodException」を取得すること、その後明らかですインタフェースからの変数。
新しいオブジェクトをインスタンス化できるように、インターフェイスをそのrepresenativeに変換するにはどうすればよいですか?
注:タイプgenericType = IList'1を変更することはできません。また タイプ[] listOfTypeArgs = TabViewModel;
このGenerativeType = IList'1;およびこのType [] listOfTypeArgs = TabViewModel;は有効なC#構文ではありません。実際のコードを投稿してください! – user3185569
この場合IListとTabViewModelの型を取得するための有効なコードは無関係です。 –
user3185569のリクエストを無視する場合は、再度送信する前にhttp://stackoverflow.com/help/mcveを読んでください。 – Aziuth