在.NETStandard 1.0中,System.Type.GetGenericArguments()
方法已经“消失”了。我认为TypeInfo.GenericTypeArguments
是GetGenericArguments()
的替代方法,但不幸的是,当传入一个开放式泛型类型时,它们的行为是不同的。例如以下代码:
Type type = typeof(ICommandHandler<>);
type.GetGenericArguments(); // return { TCommand }
type.GetTypeInfo().GenericTypeArguments; // returns empty array
虽然GetGenericArguments()
方法返回泛型类型参数TCommand
,但对于同一开放式通用类型,GenericTypeArguments
只返回一个空数组。
GenericTypeArguments
的确切行为是什么,以及在.NET Standard 1.0中Type.GetGenericArguments()
的等效方法是什么?
.GetTypeInfo().GenericTypeParameters
吗? - Jeppe Stig Nielsen