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