2
我想用它们声明的参数名称来生成泛型类的名称。例如,如果我有泛型类和实例化的如下所示我想打印"MyClass<P1,M>"
。在C中访问泛型类型的GenericTypeParameters#
现在,我让我的类型信息myInstance
,然后泛型类型定义是这样的:
// MyClass<int,string> type info here
var type = myInstance.GetType();
// MyClass<P1, M1> type info here
var genericType = type.GetGenericTypeDefinition();
调试器显示了所有参数名genericType
财产GenericTypeParameters并输入信息。然而,我无法从我的C#代码访问该集合,并将genericType
转换为System.RuntimeType类,因为RuntimeType是内部的,所以无法工作。
那么有没有办法访问GenericTypeParameters属性莫名其妙或我在这里SOL? 环境VS2015,.NET 4.6.1
@MichaelLiu:啊,是的 - 哎呀,误读。将删除,编辑然后取消删除。 –
太棒了!几乎GetGenericArguments()返回GenericTypeParameters属性,我可以在调试器中看到。现在混乱消失了。 –