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

本文关键字:创建 泛型类型 实例 情况 | 更新日期: 2023-09-27 18:18:34

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

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)

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

如果你现在有一个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创建一个接口,其中包含通用方法。