假设我有两个类,基类有一个自定义属性:
[MyAttribute]
public class BaseModel
{
public string Id { get; set; }
public string Name { get; set; }
}
public class InheritedModel : BaseModel
{
public string CompanyName { get; set; }
public int Amount { get; set; }
}
当我使用继承的类时,例如
// member.DeclaringType is InheritedModel
if (member.DeclaringType.GetCustomAttributes(typeof(MyAttribute)).Any())
{
// returns true
}
我希望它应该是false
,因为InheritedModel
并没有直接的MyAttribute
属性。
它是否正确?如何在上述条件下划分父母和继承人?
答案 0 :(得分:2)
GetCustromAttributes有一个重载,可让您指定是否还要搜索祖先类。
它似乎默认为true
(尽管在文档中没有写明),所以请尝试传递false
member.DeclaringType.GetCustomAttributes(typeof(MyAttribute), false).Any()