Condividi tramite


AttributeProviderAttribute Classe

Definizione

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à
AttributeProviderAttribute
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)

Si applica a

Vedi anche