簡體   English   中英

使用類名字符串作為通用類型參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM