![]() |
1
3
我能想到的最一般的方法是按名称加载目标操作类型,其中反勾号后面的数字(aka grave accent )表示所需的泛型参数数。
不幸地
您可以使用此测试代码看到上面的代码正在运行:
|
![]() |
2
0
我不确定我是否完全理解你想要达到的目标。我试着猜。 如果您知道所需的类型参数数量永远不会超过四个,那么您可以创建一个数组
并提供功能
然后您只需使用类型[CalculateNumberOfParameters(i)]来获取您的操作类型。请注意,我提供了一个非参数化泛型数组,因此您应该对它们调用makeGenericType()以创建实际的可实例化类型。如果您事先知道泛型参数(它们不依赖于i),那么应该在创建类型数组时指定它们。 如果永远无法知道需要多少泛型参数,则必须在运行时创建类型,因为.NET只定义带有0-4个参数的操作。您仍然需要提供到标准类型之一的转换(或适配器),这样您创建的类型的实例实际上可以从应用程序的其他部分使用。这是一条艰难的路线,我只需要使用它一次(对于Linq表达式序列化),所以除非特别要求,否则我不会深入了解细节。 |
![]() |
3
-1
使用
“assembly”可以为空(在本例中,在当前程序集中搜索类类型)。“class name”应表示类名,您可以从整数或任何信息中得到类名。 对于模板类,使用分类字符串形式“classname't1”。 |
![]() |
4
-1
要么使用
|
![]() |
5
-1
不太确定你在找什么,你从来没有提到从哪里得到T1,T2,T3? 此代码可能对您有所帮助。
然后您可以将此方法与这样的调用一起使用…
|
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
|
Dansih · .Net核心自定义身份验证方案 2 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 2 年前 |