AttributeProviderAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Povolí přesměrování atributů. Tuto třídu nelze zdědit.
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
- Dědičnost
- Atributy
Příklady
Následující příklad kódu ukazuje použití AttributeProviderAttribute k označení DataSource vlastnosti s konkrétním typem IListSource. Úplný výpis kódu naleznete v tématu Postupy: Použití atributů v ovládacích prvcích Windows Forms.
[Category("Data")]
[Description("Indicates the source of data for the control.")]
[RefreshProperties(RefreshProperties.Repaint)]
[AttributeProvider(typeof(IListSource))]
public object DataSource
{
get => _dataGridView1.DataSource;
set => _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
Poznámky
V objektovém modelu rozhraní .NET Framework existuje několik případů, kdy je vlastnost záměrně zadána jako vágní. Například DataGridView.DataSource vlastnost je zadána jako object. Důvodem je, že tato vlastnost může přijmout několik typů vstupu. Bohužel to neposkytuje žádné společné místo pro přidání metadat pro popis charakteristik vlastnosti. Každá DataSource vlastnost v rozhraní .NET Framework musí mít stejná metadata pro převaděče typů, editory typů uživatelského rozhraní a další služby, které vyžadují metadata. Náprava AttributeProviderAttribute této situace.
Jakmile je tento atribut umístěn na vlastnost, pravidla pro získání atributů pro kolekci popisovače MemberDescriptor.Attributes vlastnosti se liší. Popisovač vlastnosti obvykle shromažďuje místní atributy a potom je sloučí s atributy z typu vlastnosti. V tomto případě jsou atributy převzaty z typu vráceného AttributeProviderAttributez , ne ze skutečného typu vlastnosti. Tento atribut se používá DataGridView.DataSource k nasměrování konkrétního DataGridView.DataSource typu objektu na IListSourcea příslušná metadata jsou umístěna IListSource pro povolení datové vazby. Externí strany tak můžou snadno přidávat metadata do všech zdrojů dat.
Atributy získané z typu deklarované ve AttributeProviderAttribute vlastnosti mají prioritu mezi atributy typu vlastnosti a atributy vlastnosti. Následující seznam v pořadí priority zobrazuje úplnou sadu dostupných sloučených atributů:
Atributy vlastností
Atributy zprostředkovatele atributů
Atributy typu vlastnosti
Konstruktory
| Name | Description |
|---|---|
| AttributeProviderAttribute(String, String) |
Inicializuje novou instanci AttributeProviderAttribute třídy s daným názvem typu a názvem vlastnosti. |
| AttributeProviderAttribute(String) |
Inicializuje novou instanci AttributeProviderAttribute třídy s daným názvem typu. |
| AttributeProviderAttribute(Type) |
Inicializuje novou instanci AttributeProviderAttribute třídy s daným typem. |
Vlastnosti
| Name | Description |
|---|---|
| PropertyName |
Získá název vlastnosti, pro kterou budou atributy načteny. |
| TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute. (Zděděno od Attribute) |
| TypeName |
Získá název kvalifikovaného typu sestavení předaný do konstruktoru. |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
| GetHashCode() |
Vrátí kód hash pro tuto instanci. (Zděděno od Attribute) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| IsDefaultAttribute() |
Při přepsání v odvozené třídě určuje, zda hodnota této instance je výchozí hodnotou pro odvozenou třídu. (Zděděno od Attribute) |
| Match(Object) |
Při přepsání v odvozené třídě vrátí hodnotu, která určuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání. (Zděděno od Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní. (Zděděno od Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1). (Zděděno od Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Poskytuje přístup k vlastnostem a metodám vystaveným objektem. (Zděděno od Attribute) |