C#在运行时将属性添加到现有类

时间:2018-09-10 14:49:45

标签: c# xtrareport typebuilder

我有一个类似的班级

    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 :(得分:1)

您可以将您的 ExtraReport 绑定到 DataSet ,而不是绑定到 strong类型的对象的集合(不能在以下位置更改)执行时间处理时间)。因此,如果您向数据源添加新字段,则需要更改用于显示该新字段的报告。如果您创建存储过程来检索数据,甚至可以更改查询而无需编译应用程序您可以遍历数据集的 DataTable 对象以读取所有字段并使用 XRBinding DevExpress对象 动态地将它们放置。

请参阅:https://www.devexpress.com/Support/Center/Question/Details/T408680/binding-datatable-object-to-xtrareport-xrtable