如何为以下情况创建泛型类型实例

时间:2013-06-14 04:39:16

标签: c# .net generics

我有以下代码,请让我知道如何在运行时创建实例,而无需在编码时指定类型。

MyObject productobject = something.

我需要类型

的对象
 AccessValuesFrom<long,double>,AccessValuesFrom<long,string>..etc

通常我可以在下面创建对象:

 AccessValuesFrom<long,double> accessData=productobject.ElementInfo.GetAccessValues<double>(something, something);

但我在运行时需要AccessValuesFrom。 long是预先定义的。当没有直接创建实例的方法时,如何为这种类型创建实例(我的情况我必须调用

  productobject.ElementInfo.GetAccessValues<double>(something, something)

创建实例。

1 个答案:

答案 0 :(得分:3)

如果此时有Type个对象,可以像这样实现GetAccessValues

object GetAccessValues(Type type, something, something)
{
     var result = Activator.CreateInstance(
           typeof(AccessValuesFrom<,>).MakeGenericType(typeof(long), type));
     //do something with something
     return result;
}

也可以使用常用方法为所有通用AccessValuesFrom创建一个接口。