Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Attribute Klasa

Definicja

Reprezentuje klasę bazową atrybutów niestandardowych.

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
Dziedziczenie
Attribute
Pochodne
Atrybuty
Implementuje

Przykłady

W poniższym przykładzie kodu pokazano użycie 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.
 */

Uwagi

Klasa Attribute kojarzy wstępnie zdefiniowane informacje systemowe lub informacje niestandardowe zdefiniowane przez użytkownika z elementem docelowym. Elementem docelowym może być zestaw, klasa, konstruktor, delegat, wyliczenie, zdarzenie, pole, interfejs, metoda, przenośny moduł pliku wykonywalnego, parametr, właściwość, wartość zwracana, struktura lub inny atrybut.

Informacje udostępniane przez atrybut są również nazywane metadanymi. Metadane można zbadać w czasie wykonywania przez aplikację, aby kontrolować sposób przetwarzania danych przez program lub przed czasem wykonywania przez narzędzia zewnętrzne w celu kontrolowania sposobu przetwarzania lub konserwacji aplikacji. Na przykład wstępnie zdefiniowane funkcje platformy .NET i używają typów atrybutów do kontrolowania zachowania w czasie wykonywania, a niektóre języki programowania używają typów atrybutów do reprezentowania funkcji języka, które nie są bezpośrednio obsługiwane przez wspólny system typów platformy .NET.

Wszystkie typy atrybutów pochodzą bezpośrednio lub pośrednio z klasy Attribute. Atrybuty można stosować do dowolnego elementu docelowego; do tego samego elementu docelowego można zastosować wiele atrybutów; atrybuty i mogą być dziedziczone przez element pochodzący z elementu docelowego. Użyj klasy AttributeTargets, aby określić element docelowy, do którego jest stosowany atrybut.

Klasa Attribute udostępnia wygodne metody pobierania i testowania atrybutów niestandardowych. Aby uzyskać więcej informacji na temat używania atrybutów, zobacz Stosowanie atrybutów i atrybutów .

Konstruktory

Attribute()

Inicjuje nowe wystąpienie klasy Attribute.

Właściwości

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attribute.

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

GetCustomAttribute(Assembly, Type, Boolean)

Pobiera atrybut niestandardowy zastosowany do zestawu. Parametry określają zestaw, typ atrybutu niestandardowego do wyszukania i ignorowaną opcję wyszukiwania.

GetCustomAttribute(Assembly, Type)

Pobiera atrybut niestandardowy zastosowany do określonego zestawu. Parametry określają zestaw i typ atrybutu niestandardowego do wyszukania.

GetCustomAttribute(MemberInfo, Type, Boolean)

Pobiera atrybut niestandardowy zastosowany do elementu członkowskiego typu. Parametry określają element członkowski, typ atrybutu niestandardowego, który ma być wyszukiwany i czy mają być przeszukiwane elementy podrzędne elementu członkowskiego.

GetCustomAttribute(MemberInfo, Type)

Pobiera atrybut niestandardowy zastosowany do elementu członkowskiego typu. Parametry określają element członkowski i typ atrybutu niestandardowego do wyszukania.

GetCustomAttribute(Module, Type, Boolean)

Pobiera atrybut niestandardowy zastosowany do modułu. Parametry określają moduł, typ atrybutu niestandardowego do wyszukania i zignorowaną opcję wyszukiwania.

GetCustomAttribute(Module, Type)

Pobiera atrybut niestandardowy zastosowany do modułu. Parametry określają moduł i typ atrybutu niestandardowego do wyszukania.

GetCustomAttribute(ParameterInfo, Type, Boolean)

Pobiera atrybut niestandardowy zastosowany do parametru metody. Parametry określają parametr metody, typ atrybutu niestandardowego do wyszukania i czy wyszukiwać elementy podrzędne parametru metody.

GetCustomAttribute(ParameterInfo, Type)

Pobiera atrybut niestandardowy zastosowany do parametru metody. Parametry określają parametr metody i typ atrybutu niestandardowego do wyszukania.

GetCustomAttributes(Assembly, Boolean)

Pobiera tablicę atrybutów niestandardowych zastosowanych do zestawu. Parametry określają zestaw i ignorowaną opcję wyszukiwania.

GetCustomAttributes(Assembly, Type, Boolean)

Pobiera tablicę atrybutów niestandardowych zastosowanych do zestawu. Parametry określają zestaw, typ atrybutu niestandardowego do wyszukania i ignorowaną opcję wyszukiwania.

GetCustomAttributes(Assembly, Type)

Pobiera tablicę atrybutów niestandardowych zastosowanych do zestawu. Parametry określają zestaw i typ atrybutu niestandardowego do wyszukania.

GetCustomAttributes(Assembly)

Pobiera tablicę atrybutów niestandardowych zastosowanych do zestawu. Parametr określa zestaw.

GetCustomAttributes(MemberInfo, Boolean)

Pobiera tablicę atrybutów niestandardowych zastosowanych do elementu członkowskiego typu. Parametry określają element członkowski, typ atrybutu niestandardowego, który ma być wyszukiwany i czy mają być przeszukiwane elementy podrzędne elementu członkowskiego.

GetCustomAttributes(MemberInfo, Type, Boolean)

Pobiera tablicę atrybutów niestandardowych zastosowanych do elementu członkowskiego typu. Parametry określają element członkowski, typ atrybutu niestandardowego, który ma być wyszukiwany i czy mają być przeszukiwane elementy podrzędne elementu członkowskiego.

GetCustomAttributes(MemberInfo, Type)

Pobiera tablicę atrybutów niestandardowych zastosowanych do elementu członkowskiego typu. Parametry określają element członkowski i typ atrybutu niestandardowego do wyszukania.

GetCustomAttributes(MemberInfo)

Pobiera tablicę atrybutów niestandardowych zastosowanych do elementu członkowskiego typu. Parametr określa element członkowski.

GetCustomAttributes(Module, Boolean)

Pobiera tablicę atrybutów niestandardowych zastosowanych do modułu. Parametry określają moduł i zignorowaną opcję wyszukiwania.

GetCustomAttributes(Module, Type, Boolean)

Pobiera tablicę atrybutów niestandardowych zastosowanych do modułu. Parametry określają moduł, typ atrybutu niestandardowego do wyszukania i zignorowaną opcję wyszukiwania.

GetCustomAttributes(Module, Type)

Pobiera tablicę atrybutów niestandardowych zastosowanych do modułu. Parametry określają moduł i typ atrybutu niestandardowego do wyszukania.

GetCustomAttributes(Module)

Pobiera tablicę atrybutów niestandardowych zastosowanych do modułu. Parametr określa moduł.

GetCustomAttributes(ParameterInfo, Boolean)

Pobiera tablicę atrybutów niestandardowych zastosowanych do parametru metody. Parametry określają parametr metody i określa, czy mają być wyszukiwane elementy podrzędne parametru metody.

GetCustomAttributes(ParameterInfo, Type, Boolean)

Pobiera tablicę atrybutów niestandardowych zastosowanych do parametru metody. Parametry określają parametr metody, typ atrybutu niestandardowego do wyszukania i czy wyszukiwać elementy podrzędne parametru metody.

GetCustomAttributes(ParameterInfo, Type)

Pobiera tablicę atrybutów niestandardowych zastosowanych do parametru metody. Parametry określają parametr metody i typ atrybutu niestandardowego do wyszukania.

GetCustomAttributes(ParameterInfo)

Pobiera tablicę atrybutów niestandardowych zastosowanych do parametru metody. Parametr określa parametr metody.

GetHashCode()

Zwraca kod skrótu dla tego wystąpienia.

GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

Po zastąpieniu w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej.

IsDefined(Assembly, Type, Boolean)

Określa, czy do zestawu są stosowane jakiekolwiek atrybuty niestandardowe. Parametry określają zestaw, typ atrybutu niestandardowego do wyszukania i ignorowaną opcję wyszukiwania.

IsDefined(Assembly, Type)

Określa, czy do zestawu są stosowane jakiekolwiek atrybuty niestandardowe. Parametry określają zestaw i typ atrybutu niestandardowego do wyszukania.

IsDefined(MemberInfo, Type, Boolean)

Określa, czy jakiekolwiek atrybuty niestandardowe są stosowane do elementu członkowskiego typu. Parametry określają element członkowski, typ atrybutu niestandardowego, który ma być wyszukiwany i czy mają być przeszukiwane elementy podrzędne elementu członkowskiego.

IsDefined(MemberInfo, Type)

Określa, czy jakiekolwiek atrybuty niestandardowe są stosowane do elementu członkowskiego typu. Parametry określają element członkowski i typ atrybutu niestandardowego do wyszukania.

IsDefined(Module, Type, Boolean)

Określa, czy do modułu są stosowane jakiekolwiek atrybuty niestandardowe. Parametry określają moduł, typ atrybutu niestandardowego do wyszukania i zignorowaną opcję wyszukiwania.

IsDefined(Module, Type)

Określa, czy do modułu są stosowane atrybuty niestandardowe określonego typu. Parametry określają moduł i typ atrybutu niestandardowego do wyszukania.

IsDefined(ParameterInfo, Type, Boolean)

Określa, czy jakiekolwiek atrybuty niestandardowe są stosowane do parametru metody. Parametry określają parametr metody, typ atrybutu niestandardowego do wyszukania i czy wyszukiwać elementy podrzędne parametru metody.

IsDefined(ParameterInfo, Type)

Określa, czy jakiekolwiek atrybuty niestandardowe są stosowane do parametru metody. Parametry określają parametr metody i typ atrybutu niestandardowego do wyszukania.

Match(Object)

Po zastąpieniu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(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)

Mapuje zestaw nazw na odpowiedni zestaw identyfikatorów wysyłki.

_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie obiektu, którego można użyć do uzyskania informacji o typie dla interfejsu.

_Attribute.GetTypeInfoCount(UInt32)

Pobiera liczbę interfejsów informacyjnych typu zapewnianych przez obiekt (0 lub 1).

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

Zapewnia dostęp do właściwości i metod uwidocznionych przez obiekt.

Dotyczy

Produkt Wersje
.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

Bezpieczeństwo wątkowe

Ten typ jest bezpieczny wątkiem.

Zobacz też