Рефлексия. Достать методы из класса, которые помечены атрибутом - C#
Формулировка задачи:
Допустим имеем такой код :
Подскажите как достать методы под "флагом" Func.
class Test { [Func] static public void Method1(){ } [Func] static public void Method2(){ } static public void NotMethod(){ } }
Решение задачи: «Рефлексия. Достать методы из класса, которые помечены атрибутом»
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 { } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д