mevcut cevaplar (Bu hızlı olacaktır): Bu gibi
MethodBase method = MethodBase.GetCurrentMethod();
MyAttribute attr = (MyAttribute)method.GetCustomAttributes(typeof(MyAttribute), true)[0] ;
string value = attr.Value; //Assumes that MyAttribute has a property called Value
el ile de MethodBase
alabilirsiniz: Örneğin
(eğer [MethodImpl(MethodImplOptions.NoInlining)]
eklemek gerektiğini unutmayın) çoğunlukla modası geçmiş.
class MyClass
{
[MyAttribute("Hello World")]
public void MyMethod()
{
var method = typeof(MyClass).GetRuntimeMethod(nameof(MyClass.MyMethod), new Type[]{});
var attribute = method.GetCustomAttribute<MyAttribute>();
}
}
Bu, hiçbir casting gerektirir ve kullanımı oldukça güvenlidir:
Bu akım en iyi uygulamadır.
Bir türün tüm özelliklerini almak için .GetCustomAttributes<T>
'u da kullanabilirsiniz.
Ayrıca .net (4.0 sonra düşünüyorum) daha yeni sürümlerinde uzantıları olarak uygulanan bu yöntemlerin genel bir sürümü (döküm gerekmez!), Böylece ziyaretçiler, kabul edilen bir – Mafii