0

我有可用的 aa 类型:

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

我想创建一个泛型类型的对象 : MyGenericType<T>,所以我这样做:

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

现在我有一个存储在类型“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 回答