我有一个类型:
Type arg1 = GetGenericType(3); // based on the number passed a type is received.
我想创建一个泛型类型的对象:MyGenericType<T>
,所以我这样做:
Type g1 = typeof(MyGenericType<>);
Type g2 = g1.MakeGenericType(arg1);
现在我有一个存储在MyGenericType<T>
类型的“g2”中的类型,这里“T”的类型为arg1。
接下来,我创建一个这种类型的实例,如:
object objG = Activator.CreateInstance(g2);
现在我在“objG”中存储了泛型类型的对象。接下来我需要从“objG”访问一些成员。我可以使用反射来做到这一点。但有一个简单的方法吗?就像将这个对象存储在某个对象中,通过它我可以访问其成员或将类型“objG”转换为MyGenericType?
答案 0 :(得分:1)
是的,你可以利用下面的dynamic
简单例子来做到这一点:
dynamic listInt = Activator.CreateInstance(typeof (List<int>));
listInt.Add(3);
int count = listInt.Count;