获取实例类的父级

时间:2012-05-23 07:07:27

标签: c#

我想请求帮助。 我有以下课程:

public class POCOConfiguration : EntityTypeConfiguration<POCO>
{
    public POCOConfiguration()
    {

    }
}

...

POCOConfiguration instance = new POCOConfiguration ();

如何从实例获取POCO类型?

由于

6 个答案:

答案 0 :(得分:9)

instance.GetType().BaseType.GetGenericArguments()[0]

答案 1 :(得分:0)

看一看:http://msdn.microsoft.com/en-us/library/b8ytshk6.aspx

有一个示例显示如何获取类型(步骤3,4和5)

答案 2 :(得分:0)

如果类有一个paremeterless构造函数,那么你可以写:

public class POCOConfiguration : EntityTypeConfiguration<POCO> where POCO : new()
{     
    public POCOConfiguration()
    {
        var poco = new POCO();
    } 
} 

否则你必须使用反射,请参阅Activator class。

答案 3 :(得分:0)

检查这个

POCOConfiguration instance = new POCOConfiguration();
Type t = instance.GetType().BaseType.GetGenericArguments()[0];
//here t is the type of POCO

会工作......

答案 4 :(得分:0)

如果我理解你,你想得到POCO的类型。然后声明一个方法并调用它,如下所示;

public Type GetTypeOfPoco<T>(EntityTypeConfiguration<T> entityTypeConfiguration)
{
    Type t = typeof(T);
    return t;
}

打电话给它;

Type t = GetTypeOfPoco(instance);

答案 5 :(得分:0)

另一个答案很简单

instance.GetType().BaseType that return the base Type of class o parent class

the instance.GetType().BaseType.GetGenericArguments()[0]

会产生异常