获取泛型类的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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM