Leggi in inglese

Condividi tramite


Attribute Classe

Definizione

Rappresenta la classe base per gli attributi personalizzati.

C#
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
public abstract class Attribute
C#
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
public abstract class Attribute : System.Runtime.InteropServices._Attribute
C#
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Attribute : System.Runtime.InteropServices._Attribute
Ereditarietà
Attribute
Derivato
Attributi
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrato l'utilizzo di Attribute.

C#
using System;
using System.Reflection;

// An enumeration of animals. Start at 1 (0 = uninitialized).
public enum Animal {
    // Pets.
    Dog = 1,
    Cat,
    Bird,
}

// A custom attribute to allow a target to have a pet.
public class AnimalTypeAttribute : Attribute {
    // The constructor is called when the attribute is set.
    public AnimalTypeAttribute(Animal pet) {
        thePet = pet;
    }

    // Keep a variable internally ...
    protected Animal thePet;

    // .. and show a copy to the outside world.
    public Animal Pet {
        get { return thePet; }
        set { thePet = value; }
    }
}

// A test class where each method has its own pet.
class AnimalTypeTestClass {
    [AnimalType(Animal.Dog)]
    public void DogMethod() {}

    [AnimalType(Animal.Cat)]
    public void CatMethod() {}

    [AnimalType(Animal.Bird)]
    public void BirdMethod() {}
}

class DemoClass {
    static void Main(string[] args) {
        AnimalTypeTestClass testClass = new AnimalTypeTestClass();
        Type type = testClass.GetType();
        // Iterate through all the methods of the class.
        foreach(MethodInfo mInfo in type.GetMethods()) {
            // Iterate through all the Attributes for each method.
            foreach (Attribute attr in
                Attribute.GetCustomAttributes(mInfo)) {
                // Check for the AnimalType attribute.
                if (attr.GetType() == typeof(AnimalTypeAttribute))
                    Console.WriteLine(
                        "Method {0} has a pet {1} attribute.",
                        mInfo.Name, ((AnimalTypeAttribute)attr).Pet);
            }
        }
    }
}
/*
 * Output:
 * Method DogMethod has a pet Dog attribute.
 * Method CatMethod has a pet Cat attribute.
 * Method BirdMethod has a pet Bird attribute.
 */

Commenti

La classe Attribute associa informazioni di sistema predefinite o informazioni personalizzate definite dall'utente a un elemento di destinazione. Un elemento di destinazione può essere un assembly, una classe, un costruttore, un delegato, un evento, un campo, un'interfaccia, un metodo, un modulo di file eseguibile portabile, un parametro, una proprietà, un valore restituito, uno struct o un altro attributo.

Le informazioni fornite da un attributo sono note anche come metadati. I metadati possono essere esaminati in fase di esecuzione dall'applicazione per controllare il modo in cui il programma elabora i dati o prima della fase di esecuzione da strumenti esterni per controllare il modo in cui l'applicazione stessa viene elaborata o gestita. Ad esempio, .NET predefinito e usa tipi di attributo per controllare il comportamento di runtime e alcuni linguaggi di programmazione usano tipi di attributo per rappresentare le funzionalità del linguaggio non supportate direttamente dal sistema di tipi comuni .NET.

Tutti i tipi di attributo derivano direttamente o indirettamente dalla classe Attribute. Gli attributi possono essere applicati a qualsiasi elemento di destinazione; più attributi possono essere applicati allo stesso elemento di destinazione; Gli attributi e possono essere ereditati da un elemento derivato da un elemento di destinazione. Usare la classe AttributeTargets per specificare l'elemento di destinazione a cui viene applicato l'attributo.

La classe Attribute fornisce metodi pratici per recuperare e testare attributi personalizzati. Per altre informazioni sull'uso degli attributi, vedere 'applicazione di attributi e attributi .

Costruttori

Attribute()

Inizializza una nuova istanza della classe Attribute.

Proprietà

TypeId

Se implementato in una classe derivata, ottiene un identificatore univoco per questo Attribute.

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

GetCustomAttribute(Assembly, Type, Boolean)

Recupera un attributo personalizzato applicato a un assembly. I parametri specificano l'assembly, il tipo dell'attributo personalizzato da cercare e un'opzione di ricerca ignorata.

GetCustomAttribute(Assembly, Type)

Recupera un attributo personalizzato applicato a un assembly specificato. I parametri specificano l'assembly e il tipo dell'attributo personalizzato da cercare.

GetCustomAttribute(MemberInfo, Type, Boolean)

Recupera un attributo personalizzato applicato a un membro di un tipo. I parametri specificano il membro, il tipo dell'attributo personalizzato da cercare e se cercare i predecessori del membro.

GetCustomAttribute(MemberInfo, Type)

Recupera un attributo personalizzato applicato a un membro di un tipo. I parametri specificano il membro e il tipo dell'attributo personalizzato da cercare.

GetCustomAttribute(Module, Type, Boolean)

Recupera un attributo personalizzato applicato a un modulo. I parametri specificano il modulo, il tipo dell'attributo personalizzato da cercare e un'opzione di ricerca ignorata.

GetCustomAttribute(Module, Type)

Recupera un attributo personalizzato applicato a un modulo. I parametri specificano il modulo e il tipo dell'attributo personalizzato da cercare.

GetCustomAttribute(ParameterInfo, Type, Boolean)

Recupera un attributo personalizzato applicato a un parametro del metodo. I parametri specificano il parametro del metodo, il tipo dell'attributo personalizzato da cercare e se cercare i predecessori del parametro del metodo.

GetCustomAttribute(ParameterInfo, Type)

Recupera un attributo personalizzato applicato a un parametro del metodo. I parametri specificano il parametro del metodo e il tipo dell'attributo personalizzato da cercare.

GetCustomAttributes(Assembly, Boolean)

Recupera una matrice degli attributi personalizzati applicati a un assembly. I parametri specificano l'assembly e un'opzione di ricerca ignorata.

GetCustomAttributes(Assembly, Type, Boolean)

Recupera una matrice degli attributi personalizzati applicati a un assembly. I parametri specificano l'assembly, il tipo dell'attributo personalizzato da cercare e un'opzione di ricerca ignorata.

GetCustomAttributes(Assembly, Type)

Recupera una matrice degli attributi personalizzati applicati a un assembly. I parametri specificano l'assembly e il tipo dell'attributo personalizzato da cercare.

GetCustomAttributes(Assembly)

Recupera una matrice degli attributi personalizzati applicati a un assembly. Un parametro specifica l'assembly.

GetCustomAttributes(MemberInfo, Boolean)

Recupera una matrice degli attributi personalizzati applicati a un membro di un tipo. I parametri specificano il membro, il tipo dell'attributo personalizzato da cercare e se cercare i predecessori del membro.

GetCustomAttributes(MemberInfo, Type, Boolean)

Recupera una matrice degli attributi personalizzati applicati a un membro di un tipo. I parametri specificano il membro, il tipo dell'attributo personalizzato da cercare e se cercare i predecessori del membro.

GetCustomAttributes(MemberInfo, Type)

Recupera una matrice degli attributi personalizzati applicati a un membro di un tipo. I parametri specificano il membro e il tipo dell'attributo personalizzato da cercare.

GetCustomAttributes(MemberInfo)

Recupera una matrice degli attributi personalizzati applicati a un membro di un tipo. Un parametro specifica il membro.

GetCustomAttributes(Module, Boolean)

Recupera una matrice degli attributi personalizzati applicati a un modulo. I parametri specificano il modulo e un'opzione di ricerca ignorata.

GetCustomAttributes(Module, Type, Boolean)

Recupera una matrice degli attributi personalizzati applicati a un modulo. I parametri specificano il modulo, il tipo dell'attributo personalizzato da cercare e un'opzione di ricerca ignorata.

GetCustomAttributes(Module, Type)

Recupera una matrice degli attributi personalizzati applicati a un modulo. I parametri specificano il modulo e il tipo dell'attributo personalizzato da cercare.

GetCustomAttributes(Module)

Recupera una matrice degli attributi personalizzati applicati a un modulo. Un parametro specifica il modulo.

GetCustomAttributes(ParameterInfo, Boolean)

Recupera una matrice degli attributi personalizzati applicati a un parametro del metodo. I parametri specificano il parametro del metodo e se cercare i predecessori del parametro del metodo.

GetCustomAttributes(ParameterInfo, Type, Boolean)

Recupera una matrice degli attributi personalizzati applicati a un parametro del metodo. I parametri specificano il parametro del metodo, il tipo dell'attributo personalizzato da cercare e se cercare i predecessori del parametro del metodo.

GetCustomAttributes(ParameterInfo, Type)

Recupera una matrice degli attributi personalizzati applicati a un parametro del metodo. I parametri specificano il parametro del metodo e il tipo dell'attributo personalizzato da cercare.

GetCustomAttributes(ParameterInfo)

Recupera una matrice degli attributi personalizzati applicati a un parametro del metodo. Un parametro specifica il parametro del metodo.

GetHashCode()

Restituisce il codice hash per questa istanza.

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.

IsDefined(Assembly, Type, Boolean)

Determina se gli attributi personalizzati vengono applicati a un assembly. I parametri specificano l'assembly, il tipo dell'attributo personalizzato da cercare e un'opzione di ricerca ignorata.

IsDefined(Assembly, Type)

Determina se gli attributi personalizzati vengono applicati a un assembly. I parametri specificano l'assembly e il tipo dell'attributo personalizzato da cercare.

IsDefined(MemberInfo, Type, Boolean)

Determina se gli attributi personalizzati vengono applicati a un membro di un tipo. I parametri specificano il membro, il tipo dell'attributo personalizzato da cercare e se cercare i predecessori del membro.

IsDefined(MemberInfo, Type)

Determina se gli attributi personalizzati vengono applicati a un membro di un tipo. I parametri specificano il membro e il tipo dell'attributo personalizzato da cercare.

IsDefined(Module, Type, Boolean)

Determina se a un modulo vengono applicati attributi personalizzati. I parametri specificano il modulo, il tipo dell'attributo personalizzato da cercare e un'opzione di ricerca ignorata.

IsDefined(Module, Type)

Determina se a un modulo vengono applicati attributi personalizzati di un tipo specificato. I parametri specificano il modulo e il tipo dell'attributo personalizzato da cercare.

IsDefined(ParameterInfo, Type, Boolean)

Determina se gli attributi personalizzati vengono applicati a un parametro del metodo. I parametri specificano il parametro del metodo, il tipo dell'attributo personalizzato da cercare e se cercare i predecessori del parametro del metodo.

IsDefined(ParameterInfo, Type)

Determina se gli attributi personalizzati vengono applicati a un parametro del metodo. I parametri specificano il parametro del metodo e il tipo dell'attributo personalizzato da cercare.

Match(Object)

Quando sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

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

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Esegue il mapping di un set di nomi a un set corrispondente di identificatori dispatch.

_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.

_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero di interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso alle proprietà e ai metodi esposti da un oggetto .

Si applica a

Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Thread safety

Questo tipo è thread-safe.

Vedi anche