检查propertyInfo是否实现了一个类

时间:2014-01-22 16:35:22

标签: c# reflection

如何查找PropertyInfo是否包含特定类(因此也必须是类)。我知道如何检查PropertyInfo是否属于特定类型,但这不能用于检查它是否派生类型:

public class Foo
{
    public Foo foo { get; set; }
    public Bar bar { get; set; }

    public void CheckStuff()
    {
        foreach (var property in this.GetType().GetProperties())
            Debug.WriteLine(Bar.IsOfType(property));
    }
}

public class Bar : Foo
{
    public static bool IsOfType(PropertyInfo member)
    {
        return member.PropertyType == typeof(Foo);
    }
}

结果:

True
False

如何更改代码以便第二个结果也是如此?

1 个答案:

答案 0 :(得分:6)

public static bool IsOfType(PropertyInfo member)
{
    return typeof(Foo).IsAssignableFrom(member.PropertyType);
}