使用字符串值作为通用类型参数

时间:2019-06-18 17:56:38

标签: c# .net system.reflection

假设我有一个看起来像这样的方法:

public bool Execute<T>()
 {
 }

...并且我有一个字符串变量,描述了需要传递的类型的类名,例如

string typeName = "Person"

我已经尝试过

var typeDef = Type.GetType(typeName);
 Execute<typeDef>();

,但这是不行的。当我只有一个字符串中的类名时,有没有一种传递通用类型参数的编程方法?

1 个答案:

答案 0 :(得分:1)

var typeDef = Type.GetType(typeName);
var ret = (bool)this.GetType().GetMethod(nameof(Execute)).MakeGenericMethod(typeDef).Invoke(this, new object[0])