Инициализаця свойств класса через 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()]);
}

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


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

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

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