【发布时间】:2016-11-28 16:17:56
【问题描述】:
我的问题涉及检查属性的继承属性。
如this Question 中描述的Attribute.IsDefined(MemberInfo, Type, Boolean) (1) 和MemberInfo.IsDefined(Type, Boolean) (2) 方法基本相同。两者都在检查是否使用了属性。但是如果我想检查一个属性,inherit 参数有很大的不同:
(1):
如果为 true,则指定还搜索元素的祖先以查找自定义属性。
(2):
true 搜索此成员的继承链以查找属性;否则为 false。属性和事件忽略此参数;见备注。
(备注只推荐(1)的用法)
使用(1) 来获取属性的继承属性是没有问题的。但我的问题是为什么:为什么这个功能是这样实现的?原因、用途或好处是什么?从我的观点来看,有一种方法会忽略参数,这并不是一个真正干净的解决方案。
我是不是忽略了什么?
【问题讨论】:
标签: c# .net inheritance properties attributes