在c#中将Type参数传递给泛型

本文关键字:泛型 参数传递 Type 中将 | 更新日期: 2023-09-27 18:17:41

我有一个通用类ValueCriterion,它以另一个类类型作为参数。下面的代码可以正常工作。

new ValueCriterion<,CrashDetected>(0));

其中CrashDetected是一个类。

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

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

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

new ValueCriterion<,myType>(0));

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

我将非常感谢任何帮助。

在c#中将Type参数传递给泛型

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

var type = typeof(ValueCriterion<>).MakeGenericType(myType);
var instance = Activator.CreateInstance(type, 0);