c# - 检查 propertyInfo 是否实现了一个类

标签 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

如何更改代码使第二个结果也为真?

最佳答案

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

关于c# - 检查 propertyInfo 是否实现了一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21288658/

相关文章:

reflection - Scala 宏注释上的类型参数

c# - Visual Studio C# 在文本框中捕获输入键

c# - 计算二进制位图行中的黑色像素组

c# - NewtonSoft JSON 序列化器和 UTF8 支持

c# - 错误的 Resharper 建议 "Use method InstanceOfType"?

reflection - 有没有办法像 c# 或 java 在 OCaml 中的反射那样获取值的类型?

c# - 获取具有特定值的自定义属性的所有属性

java 反射列表 NoSuchMethodException

c# - 如何检查拆分容器内的所有文本框?

c# - 在 .NET Core 或 UWP 中使用 C# 使 Windows 10 主音量静音