Udostępnij za pośrednictwem


AttributeProviderAttribute Klasa

Definicja

Włącza przekierowywanie atrybutów. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
AttributeProviderAttribute
Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano użycie metody AttributeProviderAttribute , aby oznaczyć DataSource właściwość o określonym typie IListSource. Aby uzyskać pełną listę kodu, zobacz How to: Apply Attributes in Windows Forms Controls (Instrukcje: stosowanie atrybutów w kontrolkach 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

Uwagi

Istnieje kilka przypadków w modelu obiektów .NET Framework, w których właściwość jest celowo wpisywana jako niejasna. Na przykład DataGridView.DataSource właściwość jest typowana jako object. Jest to spowodowane tym, że ta właściwość może akceptować kilka typów danych wejściowych. Niestety, nie zapewnia to wspólnego miejsca do dodawania metadanych w celu opisania cech właściwości. Każda DataSource właściwość w .NET Framework musi mieć identyczne metadane dla konwerterów typów, edytorów typów interfejsu użytkownika i innych usług, które wymagają metadanych. Środki AttributeProviderAttribute zaradcze tej sytuacji.

Po umieszczeniu tego atrybutu we właściwości reguły uzyskiwania MemberDescriptor.Attributes atrybutów dla kolekcji deskryptora właściwości różnią się. Zazwyczaj deskryptor właściwości zbiera atrybuty lokalne, a następnie scala je z atrybutami z typu właściwości. W takim przypadku atrybuty są pobierane z typu zwróconego z AttributeProviderAttribute, a nie z rzeczywistego typu właściwości. Ten atrybut jest używany do DataGridView.DataSource wskazywania DataGridView.DataSource określonego typu obiektu na IListSource, a odpowiednie metadane są umieszczane w IListSource celu włączenia powiązania danych. W ten sposób strony zewnętrzne mogą łatwo dodawać metadane do wszystkich źródeł danych.

Atrybuty uzyskane z typu zadeklarowanego w obiekcie AttributeProviderAttribute mają priorytet między atrybutami typu właściwości a atrybutami właściwości. Poniższa lista, w kolejności priorytetu, pokazuje pełny zestaw dostępnych scalonych atrybutów:

  • Atrybuty właściwości

  • Atrybuty dostawcy atrybutów

  • Atrybuty typu właściwości

Konstruktory

AttributeProviderAttribute(String)

Inicjuje AttributeProviderAttribute nowe wystąpienie klasy o podanej nazwie typu.

AttributeProviderAttribute(String, String)

Inicjuje AttributeProviderAttribute nowe wystąpienie klasy o podanej nazwie typu i nazwie właściwości.

AttributeProviderAttribute(Type)

Inicjuje AttributeProviderAttribute nowe wystąpienie klasy o danym typie.

Właściwości

PropertyName

Pobiera nazwę właściwości, dla której zostaną pobrane atrybuty.

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu .

(Odziedziczone po Attribute)
TypeName

Pobiera kwalifikowaną nazwę typu zestawu przekazaną do konstruktora.

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

Podczas zastępowania w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy

Zobacz też