IListSource类型的AttributeProvider是做什么的?

时间:2012-07-26 14:30:32

标签: c# attributes datasource system.componentmodel

我有一个包含此属性的用户控件:

[AttributeProvider(typeof(IListSource))]
public object DataSource
{
  get { return _grid.DataSource; }
  set { _grid.DataSource = value; }
}

此属性如何影响属性?(除了设计器中的漂亮组合框)。
是否强制属性只接收实现IListSource或IEnumerable的值?
你能从BCL找到我解释属性效应的代码片段吗?


资料来源:
AttributeProviderAttribute Class
IListSource Interface
How to: Apply Attributes in Windows Forms Controls

1 个答案:

答案 0 :(得分:0)

此属性与任何属性一样,对属性本身没有任何影响。它仅由其他组件用于获取有关该属性的元数据。文档说的是某些组件(如数据绑定)需要知道属性的类型。通常这些数据是从属性属性和属性类型属性中收集的,但是这里不可能,因为DataSource属性有一些可以为它设置的选项,并且这些类型没有任何共同点,除非它们从对象继承,所以这个属性告诉任何需要知道该类型应该是IListSource的人。 我希望这更清楚。