在C#中将Type参数传递给generic

时间:2014-08-11 14:51:03

标签: c# generics

我有一个泛型类ValueCriterion,它将另一个类类型作为参数。以下代码工作正常。

new ValueCriterion<,CrashDetected>(0));

CrashDetected是一个类。

但是当我使用以下代码获得CrashDetected类的类型时。

Type myType = Type.GetType("NetworkDB." + "CrashDetected");

并将myType传递给ValueCriterion,编译器给出了以下错误:

new ValueCriterion<,myType>(0));
  

错误1使用泛型类型需要1个类型参数。

我将非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用MakeGenericType方法使用Type实例创建泛型类型:

var type = typeof(ValueCriterion<>).MakeGenericType(myType);

var instance = Activator.CreateInstance(type, 0);