c# – 使用PropertyDescriptor可以确定当前类中是否覆盖了属性
作者:互联网
如果我有:
class A
{
public virtual string Owner { get; set; }
}
class B : A
{
public override string Owner { get; set; }
}
如何使用TypeDescriptor.GetProperties(type)方法确定B类上的owner属性是覆盖属性?
解决方法:
根据@ DaveShaw的评论和使用propertyInfo的类似问题的答案:
var property = TypeDescriptor.GetProperties(typeof(B)).Find("Owner", false).ComponentType.GetProperty("Owner");
var getMethod = property.GetGetMethod(false);
bool isOverride = getMethod.GetBaseDefinition() != getMethod;
标签:c,reflection,system-reflection 来源: https://codeday.me/bug/20190703/1363460.html