Sdílet prostřednictvím


AttributeProviderAttribute Třída

Definice

Povolí přesměrování atributů. Tato třída se nemůže dě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
AttributeProviderAttribute
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 najdete v tématu Postupy: Použití atributů v ovládacích prvcích model 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

Poznámky

V objektovém modelu rozhraní .NET Framework existuje několik případů, kdy je vlastnost záměrně zadána tak, aby byla vágní. DataGridView.DataSource Například vlastnost je zadána jako object. Důvodem je, že tato vlastnost může přijímat několik typů vstupu. To bohužel neposkytuje žádné společné místo pro přidání metadat, která popisují vlastnosti vlastnosti. Každá DataSource vlastnost v rozhraní .NET Framework musí mít identická 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 ve vlastnosti, pravidla pro získání atributů pro kolekci popisovače MemberDescriptor.Attributes vlastnosti se liší. Popisovač vlastností obvykle shromažďuje místní atributy a pak je sloučí s atributy z typu vlastnosti. V tomto případě jsou atributy převzaty z typu vráceného z AttributeProviderAttribute, nikoli ze skutečného typu vlastnosti. Tento atribut se používá DataGridView.DataSource k nasměrovat konkrétní typ objektu DataGridView.DataSource na IListSourcea příslušná metadata jsou umístěna pro IListSource povolení datové vazby. Externí strany tak můžou snadno přidávat metadata ke všem zdrojům dat.

Atributy získané z typu deklarovaného v objektu AttributeProviderAttribute mají prioritu mezi atributy typu vlastnosti a atributy ve vlastnosti. Následující seznam v pořadí podle priority zobrazuje úplnou sadu dostupných sloučených atributů:

  • Atributy vlastnosti

  • Atributy zprostředkovatele atributů

  • Atributy typu vlastnosti

Konstruktory

AttributeProviderAttribute(String)

Inicializuje novou instanci AttributeProviderAttribute třídy s názvem daného typu.

AttributeProviderAttribute(String, String)

Inicializuje novou instanci AttributeProviderAttribute třídy s daným názvem typu a názvem vlastnosti.

AttributeProviderAttribute(Type)

Inicializuje novou instanci AttributeProviderAttribute třídy s daným typem.

Vlastnosti

PropertyName

Získá název vlastnosti, pro kterou se načtou atributy.

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tuto Attributetřídu .

(Zděděno od Attribute)
TypeName

Získá název kvalifikovaného typu sestavení předaný do konstruktoru.

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí hodnotu hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě označuje, zda je hodnota této instance 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á označuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

_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)

Platí pro

Viz také