如何获取实例化泛型的参数类型?

Sim*_*one 3 c# generics reflection

我很震惊我没有在互联网上找到任何关于这个问题的东西,但可能我正在找错字.这是我需要做的.

假设我有一个通用类型:List<string>为简单起见.如何获取参数类型(在本例中typeof(string))?

请记住,我需要在泛型类之外执行此操作(不在类方法中,这是我在其他SO问题中看到的).底线是我有一个泛型类型的实例,我需要知道它的类型和它的参数类型(在上面的例子中,我想得到两个typeof(List)AND typeof(string),而不是任何东西typeof(List<string>)).当然,这必须在运行时完成.

感谢所有回复的人.

har*_*rpo 7

这听起来像你正在寻找的是Type.GetGenericArguments().你可以Type在有问题的实例上调用它.它返回一个数组Type(对Eric Lippert的懊恼).