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

C#在运行时向现有类添加属性,c#,xtrareport,typebuilder,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 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; }
}
或者使用继承现有类创建新类

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

或者别的什么。这是我的想法。不幸的是,使用字典并不能解决我的问题,因为我正在使用xtrareport,并且我必须显示一个字段列表

您可以将外部报告绑定到数据集,而不是绑定到强类型对象的集合(在执行时无法更改)。因此,如果向数据源添加新字段,则需要更改显示新字段的报告。如果创建一个存储过程来检索数据,甚至可以在不编译应用程序的情况下更改查询。您可以迭代数据集的数据表对象来读取所有字段,并使用xrbind-DevExpress-Objects动态放置它们


请参阅:

我认为最好解释一下这种需求的来源。也许有更好的解决办法,你能解释一下你想要实现什么吗?这可能是一个XY问题,这意味着如果我们知道它是什么,您的原始问题可以以完全不同的方式解决。或者,使用字典。为什么这些类是嵌套的?如果你在最初的问题中包含了这些细节,那就太好了。xtrareport如何显示字段列表?谢谢,但我不使用数据库,我使用xml文件,这是一个简单的程序
    public class NewClass : MainClass
{
    public string Parameter1 { get; set; }
    public string Parameter2 { get; set; }
}