0

私は利用可能なタイプを持っています:

Type arg1 = GetGenericType(3); // based on the number passed a type is received.

ジェネリック型 : のオブジェクトを作成したいMyGenericType<T>ので、次のようにします。

Type g1 = typeof(MyGenericType<>);
Type g2 = g1.MakeGenericType(arg1);

これで、type の「g2」にタイプが格納されました。MyGenericType<T>ここでは、「T」はタイプ arg1 です。次に、このタイプのインスタンスを次のように作成します。

object objG = Activator.CreateInstance(g2);

これで、ジェネリック型のオブジェクトが「objG」に格納されました。次に、「objG」からいくつかのメンバーにアクセスする必要があります。リフレクションを使用してそれを行うことができました。しかし、それを行う簡単な方法はありますか? このオブジェクトをオブジェクトに格納して、そのメンバーにアクセスしたり、「objG」を MyGenericType に型キャストしたりできますか?

4

1 に答える 1

1

dynamicはい、以下の簡単な例を利用してそれを行うことができます。

dynamic listInt = Activator.CreateInstance(typeof (List<int>));
listInt.Add(3);

int count = listInt.Count;
于 2013-03-06T15:51:18.690 に答える