我有一个Unpack()函数,该函数带有一个通用参数T,其中T是一个类,即
var test = Unpack<ExampleClass>();
上面的示例工作正常,但是我处于需要执行与上面相同的情况,但是我只知道字符串中的类/通用参数名称。换句话说,我该如何执行与上述相同的操作:
string className = "ExampleClass";
代替类ExampleClass
?
答案 0 :(得分:2)
您可以使用MethodInfo.MakeGenericMethod
例如
您可以将解决方案分为两部分。首先从字符串表示形式获取ExampleClass的类型。
Type type = Type.GetType("ExampleNameSpace.ExampleClass");
然后使用MakeGenericMethod
调用传递类型的方法。
MethodInfo method = this.GetType().GetMethod(nameof(Unpack));
MethodInfo generic = method.MakeGenericMethod(type);
generic.Invoke(this, null);