PropertyDescriptor.IsBrowsable是否与关联Browsable()属性不一致?

时间:2013-06-09 13:28:04

标签: c# propertydescriptor

PropertyDescriptor是一个抽象类,自定义属性描述符可以从中继承。该类具有IsBrowsable属性,根据MSDN:

  

获取一个值,该值指示成员是否可浏览,如BrowsableAttribute中所指定。 (继承自MemberDescriptor。)

我的问题是,此属性与BrowsableAttributePropertyDescriptor.Attributes的关联属性有何关联(例如通过向属性添加[Browsable(false)]装饰器来定义?

我的困惑是因为我设法将BrowsableAttribute替换为PropertyDescriptor.Attributes一个新的IsBrowsable,这与BrowsableAttribute不一致。

更新 根据Marc的回答,我必须让IsBrowsable与{{1}}保持同步吗?您是否知道任何可能看到一个而不是另一个的控件?

1 个答案:

答案 0 :(得分:3)

默认的PropertyDescriptor实现使用反射并查看BrowsableAttribute。但是,如果您提供自己的PropertyDescriptor实现,那么您负责 - 很少有事情需要遵循。如果您的自定义实现使用不相关的方式来确定哪些/不可浏览:这取决于您的实现。