Инициализаця свойств класса через reflection - C#
Формулировка задачи:
Добрых времени суток. Есть класс в котором 14 свойств двух типов: int[] и string[]. Чтобы не инициализировать их вручную, решил воспользоваться "GetProperties", сообразил вот что:
Но код явно не рабочий в таком виде, как же можно реализовать мою задачу?
typeof(TAnswer).GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public) .ToList() .ForEach ( x => x.SetValue(this, x.PropertyType == typeof(string) ? new string[] {"1","3","6","8" } : new int[] {1,2,34 }) );
Решение задачи: «Инициализаця свойств класса через reflection»
textual
Листинг программы
foreach (var l in typeof(TAnswer).GetProperties(BindingFlags.Instance | BindingFlags.Public).ToList()) { if (l.PropertyType == typeof(string[])) l.SetValue(this, new string[data.Count()]); else if(l.PropertyType == typeof(int[])) l.SetValue(this, new int[data.Count()]); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д