获取实例类的父级
本文关键字:实例 获取 | 更新日期: 2023-09-27 18:34:57
我有以下类:
public class POCOConfiguration : EntityTypeConfiguration<POCO>
{
public POCOConfiguration()
{
}
}
POCOConfiguration instance = new POCOConfiguration();
如何从实例获取类型POCO
?
谢谢
instance.GetType().BaseType.GetGenericArguments()[0]
另一个答案很简单,instance.GetType().BaseType
返回父类的基本类型。
instance.GetType().BaseType.GetGenericArguments()[0]
可能会引发异常。
看看: http://msdn.microsoft.com/en-us/library/b8ytshk6.aspx
有一个示例演示如何获取类型(步骤 3、4 和 5(
如果类有一个无 paremeter 构造函数,那么你可以写:
public class POCOConfiguration : EntityTypeConfiguration<POCO> where POCO : new()
{
public POCOConfiguration()
{
var poco = new POCO();
}
}
否则,必须使用反射,请参阅激活器类。
如果我理解正确,您想获得 POCO 的类型。然后声明一个方法并像下面这样调用它;
public Type GetTypeOfPoco<T>(EntityTypeConfiguration<T> entityTypeConfiguration)
{
Type t = typeof(T);
return t;
}
称呼它;
Type t = GetTypeOfPoco(instance);
检查这个
POCOConfiguration instance = new POCOConfiguration();
Type t = instance.GetType().BaseType.GetGenericArguments()[0];
//here t is the type of POCO
会工作...