Рефлексия. Достать методы из класса, которые помечены атрибутом - C#

Узнай цену своей работы

Формулировка задачи:

Допустим имеем такой код :
class Test
    {
        [Func] static public void Method1(){ }
        [Func] static public void Method2(){ }
        static public void NotMethod(){ }
    }
Подскажите как достать методы под "флагом" Func.

Решение задачи: «Рефлексия. Достать методы из класса, которые помечены атрибутом»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.Reflection;
 
namespace ConsoleApplication1 {
    class Program {
        static void Main(string[] args) {
            Assembly asm = Assembly.GetExecutingAssembly();
            Type t = asm.GetType("ConsoleApplication1.Test");
 
            MethodInfo[] methods = t.GetMethods(BindingFlags.Public | BindingFlags.Static)
                .Where(mi => mi.GetCustomAttributes(false)
                    .Select(a => a.ToString() == typeof(Func).ToString()).FirstOrDefault())
                    .ToArray();
        }
    }
    class Test {
        [Func]
        public static void Method_1() {
        }
        [Func]
        public static void Method_2() {
        }
        public static void Method_3() {
        }
    }
    [AttributeUsage(AttributeTargets.Method)]
    class Func : Attribute {
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы