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.
Abilita il reindirizzamento degli attributi. Questa 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 AttributeProviderAttribute di per contrassegnare una DataSource proprietà con un tipo specifico di IListSource. Per un elenco di codice completo, vedere Procedura: Applicare attributi nei controlli Windows Form.
[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
Commenti
Esistono alcuni casi nel modello a oggetti di .NET Framework in cui una proprietà è tipizzata per essere vaga. 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 un luogo 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 dei tipi di interfaccia utente e altri servizi che richiedono metadati. Il AttributeProviderAttribute rimedio di questa situazione.
Dopo che questo attributo viene inserito in una proprietà, le regole per ottenere gli attributi per la raccolta del descrittore di MemberDescriptor.Attributes proprietà differiscono. In genere, il descrittore della proprietà raccoglie gli attributi locali e quindi unisce questi attributi 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 delle proprietà
Attributi del provider di attributi
Attributi del tipo di proprietà
Costruttori
| Nome | Descrizione |
|---|---|
| AttributeProviderAttribute(String, String) |
Inizializza una nuova istanza della AttributeProviderAttribute classe con il nome del tipo e il nome della proprietà specificati. |
| AttributeProviderAttribute(String) |
Inizializza una nuova istanza della AttributeProviderAttribute classe con il nome del tipo specificato. |
| AttributeProviderAttribute(Type) |
Inizializza una nuova istanza della AttributeProviderAttribute classe con il tipo specificato. |
Proprietà
| Nome | Descrizione |
|---|---|
| PropertyName |
Ottiene il nome della proprietà per cui verranno recuperati gli attributi. |
| TypeId |
Se implementato in una classe derivata, ottiene un identificatore univoco per questo Attribute. (Ereditato da Attribute) |
| TypeName |
Ottiene il nome del tipo completo dell'assembly passato al costruttore. |
Metodi
| Nome | Descrizione |
|---|---|
| Equals(Object) |
Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Ereditato da Attribute) |
| GetHashCode() |
Restituisce il codice hash per questa istanza. (Ereditato da Attribute) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| IsDefaultAttribute() |
Quando sottoposto a 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 è uguale a un oggetto specificato. (Ereditato da Attribute) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| _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 per un oggetto, che può essere utilizzato per ottenere le informazioni sul tipo per 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 alle proprietà e ai metodi esposti da un oggetto . (Ereditato da Attribute) |