Freigeben über


AttributeProviderAttribute Klasse

Definition

Aktiviert die Attributumleitung. Diese Klasse kann nicht vererbt werden.

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
Vererbung
AttributeProviderAttribute
Attribute

Beispiele

Das folgende Codebeispiel veranschaulicht die Verwendung der Markierung AttributeProviderAttribute einer DataSource Eigenschaft mit einem bestimmten Typ von IListSource. Eine vollständige Codeauflistung finden Sie unter How to: Apply Attributes in Windows Forms Controls.

[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

Hinweise

Es gibt einige Fälle im .NET Framework-Objektmodell, in denen eine Eigenschaft absichtlich als vage typiert wird. Die Eigenschaft wird z DataGridView.DataSource . B. als object. Der Grund dafür ist, dass diese Eigenschaft mehrere Eingabetypen akzeptieren kann. Leider bietet dies keinen gemeinsamen Ort, um Metadaten hinzuzufügen, um die Merkmale der Eigenschaft zu beschreiben. Jede DataSource Eigenschaft im .NET Framework muss identische Metadaten für Typkonverter, Benutzeroberflächentyp-Editoren und andere Dienste aufweisen, die Metadaten erfordern. Die Abhilfe AttributeProviderAttribute für diese Situation.

Sobald dieses Attribut für eine Eigenschaft platziert wird, unterscheiden sich die Regeln zum Abrufen von Attributen für die Auflistung des Eigenschaftsdeskriptors MemberDescriptor.Attributes . In der Regel sammelt der Eigenschaftsdeskriptor lokale Attribute und führt diese dann mit Attributen aus dem Eigenschaftentyp zusammen. In diesem Fall werden die Attribute aus dem Typ entnommen, der AttributeProviderAttributevom tatsächlichen Eigenschaftstyp zurückgegeben wird, nicht aus dem tatsächlichen Eigenschaftstyp. Dieses Attribut wird verwendet DataGridView.DataSource , um auf den spezifischen Typ des DataGridView.DataSource Objekts zu IListSourceverweisen, und die entsprechenden Metadaten werden aktiviert IListSource , um die Datenbindung zu aktivieren. Auf diese Weise können externe Parteien ganz einfach Metadaten zu allen Datenquellen hinzufügen.

Attribute, die von einem in der AttributeProviderAttribute Eigenschaft deklarierten Typ erhalten werden, haben eine Priorität zwischen den Attributen des Eigenschaftstyps und den Attributen für die Eigenschaft. Die folgende Liste in der Prioritätsreihenfolge zeigt den vollständigen Satz der verfügbaren zusammengeführten Attribute an:

  • Eigenschaftsattribute

  • Attributanbieterattribute

  • Eigenschaftstypattribute

Konstruktoren

Name Beschreibung
AttributeProviderAttribute(String, String)

Initialisiert eine neue Instanz der AttributeProviderAttribute Klasse mit dem angegebenen Typnamen und Eigenschaftennamen.

AttributeProviderAttribute(String)

Initialisiert eine neue Instanz der AttributeProviderAttribute Klasse mit dem angegebenen Typnamen.

AttributeProviderAttribute(Type)

Initialisiert eine neue Instanz der AttributeProviderAttribute Klasse mit dem angegebenen Typ.

Eigenschaften

Name Beschreibung
PropertyName

Ruft den Namen der Eigenschaft ab, für die Attribute abgerufen werden.

TypeId

Wenn sie in einer abgeleiteten Klasse implementiert wird, wird ein eindeutiger Bezeichner für diese Attribute.

(Geerbt von Attribute)
TypeName

Ruft den assemblyqualifizierten Typnamen ab, der an den Konstruktor übergeben wird.

Methoden

Name Beschreibung
Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

(Geerbt von Attribute)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, gibt an, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit denen die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bietet Zugriff auf Eigenschaften und Methoden, die von einem Objekt verfügbar gemacht werden.

(Geerbt von Attribute)

Gilt für:

Weitere Informationen