获取泛型类的Type
Posted grady1028
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取泛型类的Type相关的知识,希望对你有一定的参考价值。
比如现在有一个泛型类:
public class Product<TItem> where TItem : Item , new()
{}
想要获取它的类型Type需要使用:
var type = typeof(Product<>).MakeGenericType(typeof(TItem));
比如现在有这样一个泛型类:
public class Product<TItem,TResource>
where TItem : Item , new()
where TResource : Resource , new()
{}
想要获取它的类型Type需要使用:
var type = typeof(Product<,>).MakeGenericType(typeof(TItem),typeof(TResource));
如果你编译时出现类似以下错误提示,请尝试上面的例子:
is not a GenericTypeDefinition. MakeGenericType may only be called on a type for which Type.IsGenericTypeDefinition is true.
System.ArgumentException : The number of generic arguments provided doesn‘t equal the arity of the generic type definition.Parameter name: instantiation
以上是关于获取泛型类的Type的主要内容,如果未能解决你的问题,请参考以下文章