[英]Using a class name string as a generic type parameter
我有一個Unpack()函數,它帶有一個通用參數T,其中T是一個類,即
var test = Unpack<ExampleClass>();
上面的例子很好用,但是我需要做與上面相同的情況,但是我只知道字符串中的類/通用參數名。 換句話說,我該如何執行與上述相同的操作:
string className = "ExampleClass";
而不是類ExampleClass
?
您可以使用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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.