AttributeProviderAttribute Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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) |