Attribute Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Az egyéni attribútumok alaposztályát jelöli.
public ref class Attribute abstract
public ref class Attribute abstract : System::Runtime::InteropServices::_Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
public abstract class Attribute
[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
[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
[<System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)>]
type Attribute = class
[<System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)>]
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
type Attribute = class
interface _Attribute
[<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)>]
type Attribute = class
interface _Attribute
Public MustInherit Class Attribute
Public MustInherit Class Attribute
Implements _Attribute
- Öröklődés
-
Attribute
- Származtatott
- Attribútumok
- Megvalósítás
Példák
Az alábbi példakód bemutatja a használatot Attribute.
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.
*/
open System
// An enumeration of animals. Start at 1 (0 = uninitialized).
type Animal =
| Dog = 1
| Cat = 2
| Bird = 3
// A custom attribute to allow a target to have a pet.
type AnimalTypeAttribute(pet) =
inherit Attribute()
member val Pet = pet with get, set
// A test class where each method has its own pet.
type AnimalTypeTestClass() =
[<AnimalType(Animal.Dog)>]
member _.DogMethod() = ()
[<AnimalType(Animal.Cat)>]
member _.CatMethod() = ()
[<AnimalType(Animal.Bird)>]
member _.BirdMethod() = ()
let testClass = AnimalTypeTestClass()
let clsType = testClass.GetType()
// Iterate through all the methods of the class.
for mInfo in clsType.GetMethods() do
// Iterate through all the Attributes for each method.
for attr in Attribute.GetCustomAttributes mInfo do
// Check for the AnimalType attribute.
if attr.GetType() = typeof<AnimalTypeAttribute> then
printfn $"Method {mInfo.Name} has a pet {(attr :?> AnimalTypeAttribute).Pet} attribute."
// Output:
// Method DogMethod has a pet Dog attribute.
// Method CatMethod has a pet Cat attribute.
// Method BirdMethod has a pet Bird attribute.
Imports System.Reflection
Public Module CustomAttrVB
' An enumeration of animals. Start at 1 (0 = uninitialized).
Public Enum Animal
' Pets
Dog = 1
Cat
Bird
End Enum
' Visual Basic requires the AttributeUsage be specified.
' A custom attribute to allow a target to have a pet.
<AttributeUsage(AttributeTargets.Method)> _
Public Class AnimalTypeAttribute
Inherits Attribute
' The constructor is called when the attribute is set.
Public Sub New(ByVal animal As Animal)
Me.thePet = animal
End Sub
' Keep a variable internally ...
Protected thePet As Animal
' .. and show a copy to the outside world.
Public Property Pet() As Animal
Get
Return thePet
End Get
Set(ByVal Value As Animal)
thePet = Value
End Set
End Property
End Class
' A test class where each method has its own pet.
Class AnimalTypeTestClass
<AnimalType(Animal.Dog)> _
Public Sub DogMethod()
End Sub
<AnimalType(Animal.Cat)> _
Public Sub CatMethod()
End Sub
<AnimalType(Animal.Bird)> _
Public Sub BirdMethod()
End Sub
End Class
' The runtime test.
Sub Main()
Dim testClass As New AnimalTypeTestClass()
Dim tcType As Type = testClass.GetType()
Dim mInfo As MethodInfo
' Iterate through all the methods of the class.
For Each mInfo In tcType.GetMethods()
Dim attr As Attribute
' Iterate through all the attributes of the method.
For Each attr In Attribute.GetCustomAttributes(mInfo)
If TypeOf attr Is AnimalTypeAttribute Then
Dim attrCustom As AnimalTypeAttribute = _
CType(attr, AnimalTypeAttribute)
Console.WriteLine("Method {0} has a pet {1} attribute.", _
mInfo.Name(), attrCustom.Pet.ToString())
End If
Next
Next
End Sub
End Module
' Output:
' Method DogMethod has a pet Dog attribute.
' Method CatMethod has a pet Cat attribute.
' Method BirdMethod has a pet Bird attribute.
Megjegyzések
Az Attribute osztály előre definiált rendszerinformációkat vagy felhasználó által definiált egyéni adatokat társít egy célelemhez. A célelem lehet szerelvény, osztály, konstruktor, delegált, szám, esemény, mező, interfész, metódus, hordozható végrehajtható fájlmodul, paraméter, tulajdonság, visszatérési érték, struct vagy más attribútum.
Az attribútum által biztosított információk metaadatoknak is nevezik. A metaadatokat az alkalmazás futtatáskor is megvizsgálhatja, így szabályozhatja, hogy a program hogyan dolgozza fel az adatokat, vagy mielőtt külső eszközök irányítanák az alkalmazás feldolgozását vagy karbantartását. Például .NET előredefiniált, és attribútumtípusokkal szabályozza a futásidejű működést, egyes programozási nyelvek pedig attribútumtípusokkal jelölik a .NET gyakori típusrendszer által közvetlenül nem támogatott nyelvi funkciókat.
Minden attribútumtípus közvetlenül vagy közvetve származik az Attribute osztályból. Az attribútumok bármely célelemre alkalmazhatók; több attribútum is alkalmazható ugyanarra a célelemre; és az attribútumokat egy célelemből származtatott elem örökölheti. AttributeTargets Az osztály használatával adja meg azt a célelemet, amelyre az attribútumot alkalmazza.
Az Attribute osztály kényelmes módszereket biztosít az egyéni attribútumok lekéréséhez és teszteléséhez. További információ az attribútumok használatáról: Attribútumok és attribútumok alkalmazása.
Konstruktorok
| Name | Description |
|---|---|
| Attribute() |
Inicializálja a Attribute osztály új példányát. |
Tulajdonságok
| Name | Description |
|---|---|
| TypeId |
Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap. |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal. |
| GetCustomAttribute(Assembly, Type, Boolean) |
Beolvas egy szerelvényre alkalmazott egyéni attribútumot. A paraméterek megadják a szerelvényt, a keresendő egyéni attribútum típusát és egy figyelmen kívül hagyott keresési lehetőséget. |
| GetCustomAttribute(Assembly, Type) |
Lekéri a megadott szerelvényre alkalmazott egyéni attribútumot. A paraméterek határozzák meg a szerelvényt és a keresendő egyéni attribútum típusát. |
| GetCustomAttribute(MemberInfo, Type, Boolean) |
Lekéri a típus egy tagjára alkalmazott egyéni attribútumot. A paraméterek meghatározzák a tagot, a keresendő egyéni attribútum típusát, valamint azt, hogy a tag elődei között szeretne-e keresni. |
| GetCustomAttribute(MemberInfo, Type) |
Lekéri a típus egy tagjára alkalmazott egyéni attribútumot. A paraméterek határozzák meg a tagot és a keresendő egyéni attribútum típusát. |
| GetCustomAttribute(Module, Type, Boolean) |
Egy modulra alkalmazott egyéni attribútumot kér le. A paraméterek megadják a modult, a keresendő egyéni attribútum típusát és egy figyelmen kívül hagyott keresési lehetőséget. |
| GetCustomAttribute(Module, Type) |
Egy modulra alkalmazott egyéni attribútumot kér le. A paraméterek határozzák meg a modult és a keresendő egyéni attribútum típusát. |
| GetCustomAttribute(ParameterInfo, Type, Boolean) |
Egy metódusparaméterre alkalmazott egyéni attribútumot kér le. A paraméterek megadják a metódusparamétert, a keresendő egyéni attribútum típusát, valamint azt, hogy a metódusparaméter elődjeiben kell-e keresni. |
| GetCustomAttribute(ParameterInfo, Type) |
Egy metódusparaméterre alkalmazott egyéni attribútumot kér le. A paraméterek határozzák meg a metódusparamétert és a keresendő egyéni attribútum típusát. |
| GetCustomAttributes(Assembly, Boolean) |
Egy szerelvényre alkalmazott egyéni attribútumok tömbjének lekérése. A paraméterek határozzák meg a szerelvényt, és egy figyelmen kívül hagyott keresési lehetőséget. |
| GetCustomAttributes(Assembly, Type, Boolean) |
Egy szerelvényre alkalmazott egyéni attribútumok tömbjének lekérése. A paraméterek megadják a szerelvényt, a keresendő egyéni attribútum típusát és egy figyelmen kívül hagyott keresési lehetőséget. |
| GetCustomAttributes(Assembly, Type) |
Egy szerelvényre alkalmazott egyéni attribútumok tömbjének lekérése. A paraméterek határozzák meg a szerelvényt és a keresendő egyéni attribútum típusát. |
| GetCustomAttributes(Assembly) |
Egy szerelvényre alkalmazott egyéni attribútumok tömbjének lekérése. Egy paraméter adja meg a szerelvényt. |
| GetCustomAttributes(MemberInfo, Boolean) |
Lekéri a típus egy tagjára alkalmazott egyéni attribútumok tömbét. A paraméterek meghatározzák a tagot, a keresendő egyéni attribútum típusát, valamint azt, hogy a tag elődei között szeretne-e keresni. |
| GetCustomAttributes(MemberInfo, Type, Boolean) |
Lekéri a típus egy tagjára alkalmazott egyéni attribútumok tömbét. A paraméterek meghatározzák a tagot, a keresendő egyéni attribútum típusát, valamint azt, hogy a tag elődei között szeretne-e keresni. |
| GetCustomAttributes(MemberInfo, Type) |
Lekéri a típus egy tagjára alkalmazott egyéni attribútumok tömbét. A paraméterek határozzák meg a tagot és a keresendő egyéni attribútum típusát. |
| GetCustomAttributes(MemberInfo) |
Lekéri a típus egy tagjára alkalmazott egyéni attribútumok tömbét. Egy paraméter adja meg a tagot. |
| GetCustomAttributes(Module, Boolean) |
A modulra alkalmazott egyéni attribútumok tömbjének lekérése. A paraméterek határozzák meg a modult, és egy figyelmen kívül hagyott keresési lehetőséget. |
| GetCustomAttributes(Module, Type, Boolean) |
A modulra alkalmazott egyéni attribútumok tömbjének lekérése. A paraméterek megadják a modult, a keresendő egyéni attribútum típusát és egy figyelmen kívül hagyott keresési lehetőséget. |
| GetCustomAttributes(Module, Type) |
A modulra alkalmazott egyéni attribútumok tömbjének lekérése. A paraméterek határozzák meg a modult és a keresendő egyéni attribútum típusát. |
| GetCustomAttributes(Module) |
A modulra alkalmazott egyéni attribútumok tömbjének lekérése. Egy paraméter adja meg a modult. |
| GetCustomAttributes(ParameterInfo, Boolean) |
A metódusparaméterre alkalmazott egyéni attribútumok tömbjének lekérése. A paraméterek határozzák meg a metódusparamétert, és azt, hogy a metódusparaméter elődei között kell-e keresni. |
| GetCustomAttributes(ParameterInfo, Type, Boolean) |
A metódusparaméterre alkalmazott egyéni attribútumok tömbjének lekérése. A paraméterek megadják a metódusparamétert, a keresendő egyéni attribútum típusát, valamint azt, hogy a metódusparaméter elődjeiben kell-e keresni. |
| GetCustomAttributes(ParameterInfo, Type) |
A metódusparaméterre alkalmazott egyéni attribútumok tömbjének lekérése. A paraméterek határozzák meg a metódusparamétert és a keresendő egyéni attribútum típusát. |
| GetCustomAttributes(ParameterInfo) |
A metódusparaméterre alkalmazott egyéni attribútumok tömbjének lekérése. A paraméter a metódusparamétert adja meg. |
| GetHashCode() |
A példány kivonatkódját adja vissza. |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| IsDefaultAttribute() |
Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke. |
| IsDefined(Assembly, Type, Boolean) |
Meghatározza, hogy a rendszer alkalmaz-e egyéni attribútumokat egy szerelvényre. A paraméterek megadják a szerelvényt, a keresendő egyéni attribútum típusát és egy figyelmen kívül hagyott keresési lehetőséget. |
| IsDefined(Assembly, Type) |
Meghatározza, hogy a rendszer alkalmaz-e egyéni attribútumokat egy szerelvényre. A paraméterek határozzák meg a szerelvényt és a keresendő egyéni attribútum típusát. |
| IsDefined(MemberInfo, Type, Boolean) |
Meghatározza, hogy a rendszer alkalmaz-e egyéni attribútumokat egy adott típusú tagra. A paraméterek meghatározzák a tagot, a keresendő egyéni attribútum típusát, valamint azt, hogy a tag elődei között szeretne-e keresni. |
| IsDefined(MemberInfo, Type) |
Meghatározza, hogy a rendszer alkalmaz-e egyéni attribútumokat egy adott típusú tagra. A paraméterek határozzák meg a tagot és a keresendő egyéni attribútum típusát. |
| IsDefined(Module, Type, Boolean) |
Meghatározza, hogy vannak-e egyéni attribútumok egy modulra alkalmazva. A paraméterek megadják a modult, a keresendő egyéni attribútum típusát és egy figyelmen kívül hagyott keresési lehetőséget. |
| IsDefined(Module, Type) |
Meghatározza, hogy a megadott típusú egyéni attribútumok alkalmazhatók-e egy modulra. A paraméterek határozzák meg a modult és a keresendő egyéni attribútum típusát. |
| IsDefined(ParameterInfo, Type, Boolean) |
Meghatározza, hogy a rendszer alkalmaz-e egyéni attribútumokat egy metódusparaméterre. A paraméterek megadják a metódusparamétert, a keresendő egyéni attribútum típusát, valamint azt, hogy a metódusparaméter elődjeiben kell-e keresni. |
| IsDefined(ParameterInfo, Type) |
Meghatározza, hogy a rendszer alkalmaz-e egyéni attribútumokat egy metódusparaméterre. A paraméterek határozzák meg a metódusparamétert és a keresendő egyéni attribútum típusát. |
| Match(Object) |
Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e. |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Névkészletet képez le a küldési azonosítók megfelelő készletére. |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók. |
| _Attribute.GetTypeInfoCount(UInt32) |
Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1). |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz. |
A következőre érvényes:
Szálbiztonság
Ez a típus szálbiztos.