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, wie 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 eingegeben wird, um vage zu sein. Die -Eigenschaft wird z. DataGridView.DataSource B. als objecteingegeben. Der Grund dafür ist, dass diese Eigenschaft mehrere Eingabetypen akzeptieren kann. Leider bietet dies keinen üblichen Ort zum Hinzufügen von Metadaten zur Beschreibung der Eigenschaften der Eigenschaft. Jede DataSource Eigenschaft im gesamten .NET Framework muss identische Metadaten für Typkonverter, Benutzeroberflächentyp-Editoren und andere Dienste aufweisen, die Metadaten erfordern. Die AttributeProviderAttribute abhilfet diese Situation.

Sobald dieses Attribut in einer Eigenschaft platziert wurde, 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 Eigenschaftstyp zusammen. In diesem Fall werden die Attribute dem Typ entnommen, der AttributeProviderAttributevon zurückgegeben wird, nicht vom tatsächlichen Eigenschaftentyp. Dieses Attribut wird verwendet DataGridView.DataSource , um den DataGridView.DataSource spezifischen Typ des Objekts auf zu IListSourceverweisen, und die entsprechenden Metadaten werden platziert IListSource , um die Datenbindung zu aktivieren. Dabei können externe Parteien problemlos Metadaten zu allen Datenquellen hinzufügen.

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

  • Eigenschaftenattribute

  • Attributanbieterattribute

  • 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