2017-09-20 3 views
0

実行時に生成されるTypeという動的変数を持っています。たとえばmyGeneratedTypeです。私はTmyGeneratedTypeになるはずの次のクラスのインスタンスを作成しようとしています。私は、ダイナミック型は、クラスのプロパティに設定する必要があったいくつかの答えに遭遇してきたが、それはList<T>上で動作するように取得するように見えることはできません。実行時にダイナミックタイプのリストを設定する汎用タイプのパラメータ

明らか
Type myGeneratedType; 

private class Container<T> 
{ 
    public string a { get; set; } 
    public string b { get; set; } 
    public List<T> c { get; set; } 
} 

void Main() 
{ 
    Container<myGeneratedType> c = new Container<myGeneratedType>(); 
} 

、私のメソッド内のコードの行をMain()動作しません。ダイナミックタイプをジェネリック型パラメータとして使用してContainerのクラスを作成するにはどうすればよいですか?

+0

ある

 var type = typeof(Container<>); var MyGenericType = type.MakeGenericType(myGeneratedType)); 

? – DavidG

+0

MakeGenericTypeを使用してください:https://msdn.microsoft.com/en-us/library/system.type.makegenerictype(v=vs.110).aspx –

+0

あなたはあなたが 'c '?コンパイル時にその型がわからない場合は、@ YairHalberstadtが示唆するような 'Type'を構築することができますが、それは' c'を宣言して使用するのに役立ちません。あなたは正確に何を達成しようとしていますか? –

答えて

2

使用MakeGenericType:myGeneratedTypeは他にどのような答えあなたは全体来たとなぜ彼らは動作しませんでしたType

+0

'のようにこれを逆シリアル化できるようにしたいと思います。 typeof(Container <>) 'は私のために' null'を返します。私は何か間違っているのですか? – Aquillo

+2

@Aquilloあなたは確か何か間違っています、 'typeof(Container <>)'は 'null'を返すことができません。 –

+0

私のためにうまく動作します。 –

関連する問題