AttributeProviderAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Включает перенаправление атрибутов. Этот класс не наследуется.
public ref class AttributeProviderAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Property)]
public class AttributeProviderAttribute : Attribute
public class AttributeProviderAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property)>]
type AttributeProviderAttribute = class
inherit Attribute
type AttributeProviderAttribute = class
inherit Attribute
Public Class AttributeProviderAttribute
Inherits Attribute
- Наследование
- Атрибуты
Примеры
В следующем примере кода показано использование AttributeProviderAttribute для пометки DataSource
свойства определенным типом IListSource. Полный список кода см. в разделе Практическое руководство. Применение атрибутов в элементах управления Windows Forms.
[Category("Data")]
[Description("Indicates the source of data for the control.")]
[RefreshProperties(RefreshProperties.Repaint)]
[AttributeProvider(typeof(IListSource))]
public object DataSource
{
get
{
return this.dataGridView1.DataSource;
}
set
{
this.dataGridView1.DataSource = value;
}
}
<Category("Data"), _
Description("Indicates the source of data for the control."), _
RefreshProperties(RefreshProperties.Repaint), _
AttributeProvider(GetType(IListSource))> _
Public Property DataSource() As Object
Get
Return Me.dataGridView1.DataSource
End Get
Set(ByVal value As Object)
Me.dataGridView1.DataSource = value
End Set
End Property
Комментарии
В объектной модели платформа .NET Framework есть несколько случаев, когда свойство намеренно вводится как расплывчатое. Например, DataGridView.DataSource свойство типируется как object
. Это связано с тем, что это свойство может принимать несколько типов входных данных. К сожалению, это не дает общего места для добавления метаданных для описания характеристик свойства. Каждое DataSource
свойство в платформа .NET Framework должно иметь идентичные метаданные для преобразователей типов, редакторов типов пользовательского интерфейса и других служб, которым требуются метаданные. Способы AttributeProviderAttribute устранения этой ситуации.
После размещения этого атрибута в свойстве правила получения атрибутов для коллекции дескриптора MemberDescriptor.Attributes свойства различаются. Как правило, дескриптор свойства собирает локальные атрибуты, а затем объединяет их с атрибутами из типа свойства. В этом случае атрибуты берутся из типа, возвращаемого AttributeProviderAttributeиз , а не из фактического типа свойства. Этот атрибут используется в DataGridView.DataSource , чтобы указать конкретный DataGridView.DataSource тип IListSourceобъекта на , а соответствующие метаданные помещаются IListSource в , чтобы включить привязку данных. При этом внешние стороны могут легко добавлять метаданные во все источники данных.
Атрибуты, полученные из типа, объявленного в , AttributeProviderAttribute имеют приоритет между атрибутами типа свойства и атрибутами свойства. В следующем списке в порядке приоритета показан полный набор доступных объединенных атрибутов:
Атрибуты свойства
Атрибуты поставщика атрибутов
Атрибуты типа свойства
Конструкторы
AttributeProviderAttribute(String) |
Инициализирует новый экземпляр класса AttributeProviderAttribute, используя заданное имя типа. |
AttributeProviderAttribute(String, String) |
Инициализирует новый экземпляр класса AttributeProviderAttribute, используя заданное имя типа и имя свойства. |
AttributeProviderAttribute(Type) |
Инициализирует новый экземпляр класса AttributeProviderAttribute, используя заданный тип. |
Свойства
PropertyName |
Возвращает имя свойства, для которого будут возвращены атрибуты. |
TypeId |
В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute. (Унаследовано от Attribute) |
TypeName |
Возвращает имя типа, переданное в конструктор, с указанием сборки. |
Методы
Equals(Object) |
Возвращает значение, показывающее, равен ли экземпляр указанному объекту. (Унаследовано от Attribute) |
GetHashCode() |
Возвращает хэш-код данного экземпляра. (Унаследовано от Attribute) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
IsDefaultAttribute() |
При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute) |
Match(Object) |
При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту. (Унаследовано от Attribute) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса. (Унаследовано от Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от Attribute) |