Считайте значение атрибута метода

Я должен смочь считать значение своего атрибута из моего Метода, как я могу сделать это?

[MyAttribute("Hello World")]
public void MyMethod()
{
    // Need to read the MyAttribute attribute and get its value
}
60
задан Mafii 30 November 2016 в 10:18
поделиться

2 ответа

Вам необходимо вызвать функцию GetCustomAttributes для объекта MethodBase .
Самый простой способ получить объект MethodBase - вызвать MethodBase.GetCurrentMethod . (Обратите внимание, что вы должны добавить [MethodImpl (MethodImplOptions.NoInlining)] )

Например:

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

Вы также можете получить MethodBase вручную, например: (Это будет быстрее)

MethodBase method = typeof(MyClass).GetMethod("MyMethod");
77
ответ дан 24 November 2019 в 17:42
поделиться
[MyAttribute("Hello World")]
public int MyMethod()
{
var myAttribute = GetType().GetMethod("MyMethod").GetCustomAttributes(true).OfType<MyAttribute>().FirstOrDefault();
}
31
ответ дан 24 November 2019 в 17:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: