获取实例类的父级

本文关键字:实例 获取 | 更新日期: 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

会工作...