如何从泛型类型定义中获取typeparam名称?

时间:2018-06-15 17:46:12

标签: c# .net generics reflection system.reflection

假设我有一个泛型类型定义:

var type = typeof(IReadOnlyDictionary<,>)

我如何获得泛型参数的typeparam名称?在上面的示例中,我正在寻找"TKey""TValue"

typeof(IList<>)我期待"T"

有没有办法,使用反射来获取这些字符串?

1 个答案:

答案 0 :(得分:0)

您可以使用Type.GetGenericParameterConstraints

var type = typeof(IReadOnlyDictionary<,>)
var names = type.GetGenericArguments().Select(x => x.Name);

查看我的fiddle