AttributeProviderAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Consente il reindirizzamento degli attributi. La classe non può essere ereditata.
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
- Ereditarietà
- Attributi
Esempio
Nell'esempio di codice seguente viene illustrato l'uso di AttributeProviderAttribute per contrassegnare una DataSource
proprietà con un tipo specifico di IListSource. Per un elenco di codice completo, vedere Procedura: Applicare attributi nei controlli 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
Commenti
Esistono alcuni casi nel modello a oggetti di .NET Framework in cui una proprietà viene tipizzata in modo vago. Ad esempio, la DataGridView.DataSource proprietà viene tipizzata come object
. Il motivo è che questa proprietà può accettare diversi tipi di input. Sfortunatamente, questo non fornisce alcuna posizione comune per aggiungere metadati per descrivere le caratteristiche della proprietà. Ogni DataSource
proprietà in .NET Framework deve avere metadati identici per convertitori di tipi, editor di tipi di interfaccia utente e altri servizi che richiedono metadati. Questa AttributeProviderAttribute situazione viene risolta.
Dopo aver inserito questo attributo in una proprietà, le regole per ottenere gli attributi per la raccolta del descrittore di MemberDescriptor.Attributes proprietà differiscono. In genere, il descrittore di proprietà raccoglie gli attributi locali e quindi lo unisce con gli attributi del tipo di proprietà. In questo caso, gli attributi vengono ricavati dal tipo restituito da AttributeProviderAttribute, non dal tipo di proprietà effettivo. Questo attributo viene usato per DataGridView.DataSource puntare il DataGridView.DataSource tipo specifico dell'oggetto a IListSourcee i metadati appropriati vengono inseriti per IListSource abilitare il data binding. In questo modo, le parti esterne possono aggiungere facilmente metadati a tutte le origini dati.
Gli attributi ottenuti da un tipo dichiarato in AttributeProviderAttribute hanno una priorità tra gli attributi del tipo della proprietà e gli attributi della proprietà. L'elenco seguente, in ordine di priorità, mostra il set completo di attributi uniti disponibili:
Attributi di proprietà
Attributi del provider di attributi
Attributi del tipo di proprietà
Costruttori
AttributeProviderAttribute(String) |
Inizializza una nuova istanza della classe AttributeProviderAttribute con il nome del tipo indicato. |
AttributeProviderAttribute(String, String) |
Inizializza una nuova istanza della classe AttributeProviderAttribute con il nome del tipo e della proprietà specificati. |
AttributeProviderAttribute(Type) |
Inizializza una nuova istanza della classe AttributeProviderAttribute con il tipo indicato. |
Proprietà
PropertyName |
Ottiene il nome della proprietà per cui recuperare gli attributi. |
TypeId |
Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute. (Ereditato da Attribute) |
TypeName |
Ottiene il nome di tipo dell'assembly passato al costruttore. |
Metodi
Equals(Object) |
Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Ereditato da Attribute) |
GetHashCode() |
Restituisce il codice hash per l'istanza. (Ereditato da Attribute) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
IsDefaultAttribute() |
In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata. (Ereditato da Attribute) |
Match(Object) |
Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia. (Ereditato da Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da Attribute) |