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.
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
- 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 object
eingegeben. 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) |