C # добавить свойства в существующий класс во время выполнения - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть такой класс;

    public class MainClass
{
    public class Class1
    {
        public string Property1 { get; set; }
        public string Property2 { get; set; }
        public int Property3 { get; set; }
    }
    public class Class2
    {
        public Class2()
        {
            List1 = new List<Class1>();
        }
        public string Property4 { get; set; }
        public List<Class1> List1 { get; set; }
    }
    public List<Class2> List2 { get; set; }
    public string Property5 { get; set; }
    public bool Property6 { get; set; }
}

Я хочу добавить параметры в MainClass во время выполнения

    public class MainClass
{
    ...
    public string Parameter1 { get; set; }
    public string Parameter2 { get; set; }
    ...
}

или создать новый класс с наследованием существующего класса.

    public class NewClass : MainClass
{
    public string Parameter1 { get; set; }
    public string Parameter2 { get; set; }
}

или что-то еще.Это мои идеи.К сожалению, использование словаря не решит мою проблему, потому что я использую xtrareport, и я должен показать список полей.

1 Ответ

0 голосов
/ 10 сентября 2018

Вы можете связать свой ExtraReport с DataSet вместо привязки к коллекции строго типизированных объектов (которую нельзя изменить во время выполнения ). Поэтому, если вы добавляете новые поля в источник данных, нужно изменить отчет для отображения этих новых полей. Если вы создаете хранимую процедуру для извлечения данных, вы даже можете изменить запрос, не компилируя Приложение . Можно выполнить итерацию по объекту DataTable объекта DataSet, чтобы прочитать все поля и разместить их динамически, используя XRBinding DevExpress Objects .

См .: https://www.devexpress.com/Support/Center/Question/Details/T408680/binding-datatable-object-to-xtrareport-xrtable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...