AttributeProviderAttribute Klasse

Definition

Ermöglicht die Umleitung von Attributen. 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

Im folgenden Codebeispiel wird veranschaulicht, dass mit AttributeProviderAttribute eine DataSource Eigenschaft mit einem bestimmten Typ von markiert wird IListSource. Eine vollständige Codeauflistung finden Sie unter Vorgehensweise: Anwenden von Attributen in Windows Forms-Steuerelementen.

[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

Hinweise

Es gibt einige Fälle im .NET Framework-Objektmodell, in denen eine Eigenschaft absichtlich typisiert wird, um vage zu sein. Die -Eigenschaft wird beispielsweise DataGridView.DataSource als objecttypisiert. Der Grund dafür ist, dass diese Eigenschaft mehrere Eingabetypen akzeptieren kann. Leider bietet dies keinen gemeinsamen Ort zum Hinzufügen von Metadaten, um die Eigenschaften der Eigenschaft zu beschreiben. Jede DataSource Eigenschaft im gesamten .NET Framework muss über identische Metadaten für Typkonverter, Benutzeroberflächentyp-Editoren und andere Dienste verfügen, die Metadaten erfordern. Die AttributeProviderAttribute abhilfen in dieser Situation.

Nachdem dieses Attribut in einer Eigenschaft platziert wurde, unterscheiden sich die Regeln zum Abrufen von Attributen für die Auflistung des MemberDescriptor.Attributes Eigenschaftendeskriptors. In der Regel sammelt der Eigenschaftendeskriptor lokale Attribute und führt diese dann mit Attributen aus dem Eigenschaftentyp zusammen. In diesem Fall werden die Attribute vom Typ übernommen, der AttributeProviderAttributevon zurückgegeben wird, und nicht aus dem tatsächlichen Eigenschaftstyp. Dieses Attribut wird verwendet DataGridView.DataSource , um den DataGridView.DataSource spezifischen Typ des Objekts auf zu IListSourceverweisen, und die entsprechenden Metadaten werden auf platziert IListSource , um die Datenbindung zu ermöglichen. Auf diese Weise können externe Parteien problemlos Metadaten zu allen Datenquellen hinzufügen.

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

  • Eigenschaftenattribute

  • Attribute des Attributanbieters

  • Eigenschaftentypattribute

Konstruktoren

AttributeProviderAttribute(String)

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

AttributeProviderAttribute(String, String)

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

AttributeProviderAttribute(Type)

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

Eigenschaften

PropertyName

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

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.

(Geerbt von Attribute)
TypeName

Ruft den durch die Assembly bezeichneten Typnamen ab, der an den Konstruktor übergeben wurde.

Methoden

Equals(Object)

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

(Geerbt von Attribute)
GetHashCode()

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

(Geerbt von Attribute)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

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

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

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

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.

(Geerbt von Attribute)

Gilt für:

Weitere Informationen