Attribute Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Özel öznitelikler için temel sınıfı temsil eder.
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
- Devralma
-
Attribute
- Türetilmiş
- Öznitelikler
- Uygulamalar
Örnekler
Aşağıdaki kod örneğinde Attributekullanımı gösterilmektedir.
using namespace System;
using namespace System::Reflection;
// An enumeration of animals. Start at 1 (0 = uninitialized).
public enum class Animal
{
// Pets.
Dog = 1,
Cat, Bird
};
// A custom attribute to allow a target to have a pet.
public ref class AnimalTypeAttribute: public Attribute
{
public:
// The constructor is called when the attribute is set.
AnimalTypeAttribute( Animal pet )
{
thePet = pet;
}
protected:
// Keep a variable internally ...
Animal thePet;
public:
property Animal Pet
{
// .. and show a copy to the outside world.
Animal get()
{
return thePet;
}
void set( Animal value )
{
thePet = value;
}
}
};
// A test class where each method has its own pet.
ref class AnimalTypeTestClass
{
public:
[AnimalType(Animal::Dog)]
void DogMethod(){}
[AnimalType(Animal::Cat)]
void CatMethod(){}
[AnimalType(Animal::Bird)]
void BirdMethod(){}
};
int main()
{
AnimalTypeTestClass^ testClass = gcnew AnimalTypeTestClass;
Type^ type = testClass->GetType();
// Iterate through all the methods of the class.
System::Collections::IEnumerator^ myEnum =
type->GetMethods()->GetEnumerator();
while ( myEnum->MoveNext() )
{
MethodInfo^ mInfo = safe_cast<MethodInfo^>(myEnum->Current);
// Iterate through all the Attributes for each method.
System::Collections::IEnumerator^ myEnum1 =
Attribute::GetCustomAttributes( mInfo )->GetEnumerator();
while ( myEnum1->MoveNext() )
{
Attribute^ attr = safe_cast<Attribute^>(myEnum1->Current);
// Check for the AnimalType attribute.
if ( attr->GetType() == AnimalTypeAttribute::typeid )
Console::WriteLine( "Method {0} has a pet {1} attribute.",
mInfo->Name, (dynamic_cast<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.
*/
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.
Açıklamalar
Attribute sınıfı, önceden tanımlanmış sistem bilgilerini veya kullanıcı tanımlı özel bilgileri bir hedef öğeyle ilişkilendirir. Hedef öğe bir derleme, sınıf, oluşturucu, temsilci, numaralandırma, olay, alan, arabirim, yöntem, taşınabilir yürütülebilir dosya modülü, parametre, özellik, dönüş değeri, yapısı veya başka bir öznitelik olabilir.
Bir öznitelik tarafından sağlanan bilgiler meta veri olarak da bilinir. Meta veriler, uygulamanızın verileri nasıl işlediğini denetlemek için uygulamanız tarafından çalışma zamanında incelenebilir veya uygulamanızın nasıl işlendiğini veya bakımının nasıl yapıldığını denetlemek için dış araçlar tarafından çalışma zamanından önce incelenebilir. Örneğin, .NET çalışma zamanı davranışını denetlemek için öznitelik türlerini önceden tanımlanmış ve kullanır ve bazı programlama dilleri ise .NET ortak tür sistemi tarafından doğrudan desteklenmeyen dil özelliklerini temsil etmek için öznitelik türlerini kullanır.
Tüm öznitelik türleri doğrudan veya dolaylı olarak Attribute sınıfından türetilir. Öznitelikler herhangi bir hedef öğeye uygulanabilir; aynı hedef öğeye birden çok öznitelik uygulanabilir; ve öznitelikleri, hedef öğeden türetilen bir öğe tarafından devralınabilir. özniteliğinin uygulandığı hedef öğeyi belirtmek için AttributeTargets sınıfını kullanın.
Attribute sınıfı, özel öznitelikleri almak ve test etmek için kullanışlı yöntemler sağlar. Öznitelikleri kullanma hakkında daha fazla bilgi için bkz. Öznitelikleri Uygulama ve Öznitelikleri.
Oluşturucular
Attribute() |
Attribute sınıfının yeni bir örneğini başlatır. |
Özellikler
TypeId |
Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır. |
Yöntemler
Equals(Object) |
Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür. |
GetCustomAttribute(Assembly, Type) |
Belirtilen derlemeye uygulanan özel bir özniteliği alır. Parametreler, aranacak özel özniteliğin derlemesini ve türünü belirtir. |
GetCustomAttribute(Assembly, Type, Boolean) |
Bir derlemeye uygulanan özel özniteliği alır. Parametreler derlemeyi, aranacak özel özniteliğin türünü ve yoksayılan arama seçeneğini belirtir. |
GetCustomAttribute(MemberInfo, Type) |
Bir türün üyesine uygulanan özel özniteliği alır. Parametreler, üyeyi ve aranacak özel özniteliğin türünü belirtir. |
GetCustomAttribute(MemberInfo, Type, Boolean) |
Bir türün üyesine uygulanan özel özniteliği alır. Parametreler üyeyi, aranacak özel özniteliğin türünü ve üyenin atalarının aranıp aranmayacağını belirtir. |
GetCustomAttribute(Module, Type) |
Modüle uygulanan özel bir özniteliği alır. Parametreler modülü ve aranacak özel özniteliğin türünü belirtir. |
GetCustomAttribute(Module, Type, Boolean) |
Modüle uygulanan özel bir özniteliği alır. Parametreler modülü, aranacak özel özniteliğin türünü ve yoksayılan arama seçeneğini belirtir. |
GetCustomAttribute(ParameterInfo, Type) |
Yöntem parametresine uygulanan özel bir özniteliği alır. Parametreler yöntem parametresini ve aranacak özel özniteliğin türünü belirtir. |
GetCustomAttribute(ParameterInfo, Type, Boolean) |
Yöntem parametresine uygulanan özel bir özniteliği alır. Parametreler yöntem parametresini, aranacak özel özniteliğin türünü ve yöntem parametresinin alt öğesinin aranıp aranmayacağını belirtir. |
GetCustomAttributes(Assembly) |
Bir derlemeye uygulanan özel özniteliklerin dizisini alır. Parametresi derlemeyi belirtir. |
GetCustomAttributes(Assembly, Boolean) |
Bir derlemeye uygulanan özel özniteliklerin dizisini alır. Parametreler derlemeyi ve yoksayılan arama seçeneğini belirtir. |
GetCustomAttributes(Assembly, Type) |
Bir derlemeye uygulanan özel özniteliklerin dizisini alır. Parametreler derlemeyi ve aranacak özel özniteliğin türünü belirtir. |
GetCustomAttributes(Assembly, Type, Boolean) |
Bir derlemeye uygulanan özel özniteliklerin dizisini alır. Parametreler derlemeyi, aranacak özel özniteliğin türünü ve yoksayılan arama seçeneğini belirtir. |
GetCustomAttributes(MemberInfo) |
Bir türün üyesine uygulanan özel özniteliklerin dizisini alır. Bir parametre üyeyi belirtir. |
GetCustomAttributes(MemberInfo, Boolean) |
Bir türün üyesine uygulanan özel özniteliklerin dizisini alır. Parametreler üyeyi, aranacak özel özniteliğin türünü ve üyenin atalarının aranıp aranmayacağını belirtir. |
GetCustomAttributes(MemberInfo, Type) |
Bir türün üyesine uygulanan özel özniteliklerin dizisini alır. Parametreler, üyeyi ve aranacak özel özniteliğin türünü belirtir. |
GetCustomAttributes(MemberInfo, Type, Boolean) |
Bir türün üyesine uygulanan özel özniteliklerin dizisini alır. Parametreler üyeyi, aranacak özel özniteliğin türünü ve üyenin atalarının aranıp aranmayacağını belirtir. |
GetCustomAttributes(Module) |
Modüle uygulanan özel özniteliklerin dizisini alır. Parametresi modülü belirtir. |
GetCustomAttributes(Module, Boolean) |
Modüle uygulanan özel özniteliklerin dizisini alır. Parametreler modülü ve yoksayılan arama seçeneğini belirtir. |
GetCustomAttributes(Module, Type) |
Modüle uygulanan özel özniteliklerin dizisini alır. Parametreler modülü ve aranacak özel özniteliğin türünü belirtir. |
GetCustomAttributes(Module, Type, Boolean) |
Modüle uygulanan özel özniteliklerin dizisini alır. Parametreler modülü, aranacak özel özniteliğin türünü ve yoksayılan arama seçeneğini belirtir. |
GetCustomAttributes(ParameterInfo) |
Bir yöntem parametresine uygulanan özel özniteliklerin dizisini alır. parametresi yöntem parametresini belirtir. |
GetCustomAttributes(ParameterInfo, Boolean) |
Bir yöntem parametresine uygulanan özel özniteliklerin dizisini alır. Parametreler yöntem parametresini ve yöntem parametresinin atalarının aranıp aranmayacağını belirtir. |
GetCustomAttributes(ParameterInfo, Type) |
Bir yöntem parametresine uygulanan özel özniteliklerin dizisini alır. Parametreler yöntem parametresini ve aranacak özel özniteliğin türünü belirtir. |
GetCustomAttributes(ParameterInfo, Type, Boolean) |
Bir yöntem parametresine uygulanan özel özniteliklerin dizisini alır. Parametreler yöntem parametresini, aranacak özel özniteliğin türünü ve yöntem parametresinin alt öğesinin aranıp aranmayacağını belirtir. |
GetHashCode() |
Bu örneğin karma kodunu döndürür. |
GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
IsDefaultAttribute() |
Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir. |
IsDefined(Assembly, Type) |
Herhangi bir özel özniteliğin bir derlemeye uygulanıp uygulanmadığını belirler. Parametreler derlemeyi ve aranacak özel özniteliğin türünü belirtir. |
IsDefined(Assembly, Type, Boolean) |
Herhangi bir özel özniteliğin bir derlemeye uygulanıp uygulanmadığını belirler. Parametreler derlemeyi, aranacak özel özniteliğin türünü ve yoksayılan arama seçeneğini belirtir. |
IsDefined(MemberInfo, Type) |
Herhangi bir özel özniteliğin bir türün üyesine uygulanıp uygulanmadığını belirler. Parametreler, üyeyi ve aranacak özel özniteliğin türünü belirtir. |
IsDefined(MemberInfo, Type, Boolean) |
Herhangi bir özel özniteliğin bir türün üyesine uygulanıp uygulanmadığını belirler. Parametreler üyeyi, aranacak özel özniteliğin türünü ve üyenin atalarının aranıp aranmayacağını belirtir. |
IsDefined(Module, Type) |
Belirli bir türe ait özel özniteliklerin modüle uygulanıp uygulanmadığını belirler. Parametreler modülü ve aranacak özel özniteliğin türünü belirtir. |
IsDefined(Module, Type, Boolean) |
Herhangi bir özel özniteliğin bir modüle uygulanıp uygulanmadığını belirler. Parametreler modülü, aranacak özel özniteliğin türünü ve yoksayılan arama seçeneğini belirtir. |
IsDefined(ParameterInfo, Type) |
Herhangi bir özel özniteliğin bir yöntem parametresine uygulanıp uygulanmadığını belirler. Parametreler yöntem parametresini ve aranacak özel özniteliğin türünü belirtir. |
IsDefined(ParameterInfo, Type, Boolean) |
Herhangi bir özel özniteliğin bir yöntem parametresine uygulanıp uygulanmadığını belirler. Parametreler yöntem parametresini, aranacak özel özniteliğin türünü ve yöntem parametresinin alt öğesinin aranıp aranmayacağını belirtir. |
Match(Object) |
Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür. |
MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
Belirtik Arabirim Kullanımları
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Bir ad kümesini ilgili dağıtım tanımlayıcıları kümesiyle eşler. |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır. |
_Attribute.GetTypeInfoCount(UInt32) |
Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 veya 1). |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Bir nesne tarafından kullanıma sunulan özelliklere ve yöntemlere erişim sağlar. |
Şunlara uygulanır
İş Parçacığı Güvenliği
Bu tür iş parçacığı güvenlidir.
Ayrıca bkz.
- öznitelikleri uygulama
- Öznitelikler Kullanarak Meta Verileri Genişletmeyi