Как через атрибут с помощью рефлексии запустить конструктор класса - C#
Формулировка задачи:
Как через атрибут с помощью рефлексии запустить конструктор класса, к которому прицеплен пользовательский атрибут?
Решение задачи: «Как через атрибут с помощью рефлексии запустить конструктор класса»
textual
Листинг программы
using System; using System.Linq; using System.Reflection; namespace ConsoleApplication96 { [AttributeUsage(AttributeTargets.Class)] public class FigureTypeAttribute : Attribute { public FigureTypeAttribute(string CurFig) { Fig = CurFig; } public string Fig; } [FigureType("Circle")] class Circle { public override string ToString() { return "CIRCLE!!!"; } } [FigureType("Rectangle")] class Rectangle { public override string ToString() { return "Rectangle!!!"; } } class Program { static void Main() { string figure = "Circle";//Console.ReadLine(); var figureType = Assembly.GetExecutingAssembly() .GetTypes() .FirstOrDefault(t => { var attr = t.GetCustomAttribute<FigureTypeAttribute>(); if (attr == null) return false; return attr.Fig == figure; }); if (figureType == null) Console.WriteLine("Тип не найден"); else Console.WriteLine(Activator.CreateInstance(figureType)); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д