AttributeProviderAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Włącza przekierowywanie atrybutów. Klasa ta nie może być dziedziczona.
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
- Dziedziczenie
- Atrybuty
Przykłady
W poniższym przykładzie kodu pokazano użycie metody AttributeProviderAttribute , aby oznaczyć DataSource
właściwość o określonym typie IListSource. Aby uzyskać pełną listę kodu, zobacz How to: Apply Attributes in Windows Forms Controls (Instrukcje: stosowanie atrybutów w kontrolkach Windows Forms).
[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
Uwagi
Istnieje kilka przypadków w modelu obiektów .NET Framework, w których właściwość jest celowo wpisywana jako niejasna. Na przykład DataGridView.DataSource właściwość jest typowana jako object
. Jest to spowodowane tym, że ta właściwość może akceptować kilka typów danych wejściowych. Niestety, nie zapewnia to wspólnego miejsca do dodawania metadanych w celu opisania cech właściwości. Każda DataSource
właściwość w .NET Framework musi mieć identyczne metadane dla konwerterów typów, edytorów typów interfejsu użytkownika i innych usług, które wymagają metadanych. Środki AttributeProviderAttribute zaradcze tej sytuacji.
Po umieszczeniu tego atrybutu we właściwości reguły uzyskiwania MemberDescriptor.Attributes atrybutów dla kolekcji deskryptora właściwości różnią się. Zazwyczaj deskryptor właściwości zbiera atrybuty lokalne, a następnie scala je z atrybutami z typu właściwości. W takim przypadku atrybuty są pobierane z typu zwróconego z AttributeProviderAttribute, a nie z rzeczywistego typu właściwości. Ten atrybut jest używany do DataGridView.DataSource wskazywania DataGridView.DataSource określonego typu obiektu na IListSource, a odpowiednie metadane są umieszczane w IListSource celu włączenia powiązania danych. W ten sposób strony zewnętrzne mogą łatwo dodawać metadane do wszystkich źródeł danych.
Atrybuty uzyskane z typu zadeklarowanego w obiekcie AttributeProviderAttribute mają priorytet między atrybutami typu właściwości a atrybutami właściwości. Poniższa lista, w kolejności priorytetu, pokazuje pełny zestaw dostępnych scalonych atrybutów:
Atrybuty właściwości
Atrybuty dostawcy atrybutów
Atrybuty typu właściwości
Konstruktory
AttributeProviderAttribute(String) |
Inicjuje AttributeProviderAttribute nowe wystąpienie klasy o podanej nazwie typu. |
AttributeProviderAttribute(String, String) |
Inicjuje AttributeProviderAttribute nowe wystąpienie klasy o podanej nazwie typu i nazwie właściwości. |
AttributeProviderAttribute(Type) |
Inicjuje AttributeProviderAttribute nowe wystąpienie klasy o danym typie. |
Właściwości
PropertyName |
Pobiera nazwę właściwości, dla której zostaną pobrane atrybuty. |
TypeId |
Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu . (Odziedziczone po Attribute) |
TypeName |
Pobiera kwalifikowaną nazwę typu zestawu przekazaną do konstruktora. |
Metody
Equals(Object) |
Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi. (Odziedziczone po Attribute) |
GetHashCode() |
Zwraca wartość skrótu dla tego wystąpienia. (Odziedziczone po Attribute) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
IsDefaultAttribute() |
Podczas zastępowania w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej. (Odziedziczone po Attribute) |
Match(Object) |
Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi. (Odziedziczone po Attribute) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone po Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone po Attribute) |