У меня есть класс:
public class ActionReportEntity
{
public string Caption { get; set; }
public string Description { get; set; }
public string Item1 { get; set; }
public string Item2 { get; set; }
public string Item3 { get; set; }
public string Item4 { get; set; }
public string Item5 { get; set; }
public string Item6 { get; set; }
public string Item7 { get; set; }
public string Item8 { get; set; }
public string Item9 { get; set; }
public string Item10 { get; set; }
}
Я хочу заполнить Item1 до Item (1-10) динамически, я достигаю этого свойства с помощью этого кода:
Regex regex=new Regex("Item[0-9]+");
var props = typeof(ActionReportEntity)
.GetProperties()
.Where(p => regex.IsMatch(p.Name))
.OrderBy(p=>p.Name.Substring(4).ToInteger());
Но яЯ думаю, что этот способ не является хорошим и мощным, потому что может быть любой рефакторинг этого класса и добавить какое-либо свойство, резкое, например Item50, или изменить свойство.
Я думаю, что я должен использовать атрибут , но япока не используйте его.
Каков наилучший способ получения динамических свойств?
Обновление:
Упомянуто, что я хочу использовать этот класс в привязке в сетке или отчете, поэтому я не хочу менять структуру своего класса, потому что я не могу связать реквизит списка с сеткой или использовать его в отчете