Razbezhkin
@Razbezhkin
программист, преподаватель

Получение атрибутов метода при использовании Func?

Здравствуйте.

Есть код на c#, который не работает как хотелось бы :)

public class myclass
{
        public class MyAttribute : Attribute { }

        [MyAttribute]
        public string MyMethod()
        {
            return "";
        }

        public void MainMethod()
        {
            Func<string> m = MyMethod;
            Type t = m.GetType();
            object[] attrs=t.GetCustomAttributes(typeof(MyAttribute), true);
        }
}

В последней стоке метода MainMethod в массиве attrs оказывается 0 элементов, т.е. получить атрибут метода MyMethod не удается.
Вопрос, как все таки, добраться до атрибута метода MyMethod из метода MainMethod?
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
Kr0nic
@Kr0nic
Пишу код за еду
public void MainMethod()
{
	Func<string> method = MyMethod;
	var methodName = method.GetMethodInfo().Name;

	var type = method.Target.GetType();

	var attrs = type.GetMethod(methodName).GetCustomAttributes(typeof(MyAttribute), true);
}


А ниже был первоначальный вариант без использования Func
public void MainMethod()
{
	var method = typeof(myclass).GetMethod("MyMethod");
	var attrs = method.GetCustomAttributes(typeof(MyAttribute), true);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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