“实体类”可不可以动态添加“字段”和“属性”
“实体类”可不可以动态添加“字段”和“属性”???比如一个实体类,如下:
public class EnergyTargetModel
{
public string EnergyYear
{
get;
set;
}
public string EnergySum
{
get;
set;
}
public string EnergyUnitArea
{
get;
set;
}
public string EnergyEveryOne
{
get;
set;
}
}
功能:
现在要根据参数“Sum”,给“EnergyTargetModel”类添加几个属性。
1、如果“Sum”为“1”,那么“EnergyTargetModel”类不变。
2、如果“Sum”为“2”,那么为“EnergyTargetModel”类添加属性“EnergyYear1、EnergySum1、EnergyUnitArea1、EnergyEveryOne1”。
3、如果“Sum”为“3”,那么为“EnergyTargetModel”类添加属性“EnergyYear1、EnergySum1、EnergyUnitArea1、EnergyEveryOne1、EnergyYear2、EnergySum2、EnergyUnitArea2、EnergyEveryOne2、”。
4、以此类推,动态为“EnergyTargetModel”类添加属性,并且确保动态修改后的类可以被实例化为List<EnergyTargetModel>实体集合。
您是不是感觉这样的需求很怪异。。。 应该怎样做呢??? 最好有实例可以参考。。。 感激不尽。。。 --------------------编程问答-------------------- 通过定义实体集之间的关系可以实现吗??? --------------------编程问答-------------------- --------------------编程问答-------------------- 给类加属性还是给类对象加属性?
--------------------编程问答-------------------- 参阅 System.Reflection.Emit 命名空间
难度相当大,楼主,挽尊。 --------------------编程问答-------------------- 请问怎么给类对象添加属性?
--------------------编程问答-------------------- 额,类都编译好了还能添加吗? --------------------编程问答--------------------
你先告诉我,你添加了属性别人怎么用?反射吗?
在设计时调用者根本不知道你有这个属性,C#毕竟不是动态语言。 --------------------编程问答--------------------
所以我才问:给类加属性还是给类对象加属性?
--------------------编程问答-------------------- 做几个 具有有所属性的EnergyTargetModel 类 然后继承 隐藏不要的属性 --------------------编程问答--------------------
给“类的对象”添加属性。。。 --------------------编程问答-------------------- 不知道DLR可不可以做这样子的需求~~~~ --------------------编程问答-------------------- 我们曾经有一个需求最后是用的依赖属性解决的,不过解决了之后带了其它设计上的问题,一直再考虑换方式去解决.
如果楼主真的有兴趣的话可以自己实现一个依赖属性的整个结构,因为C#自身的依赖属性是有局限的,毕竟设计的出发点不一样. --------------------编程问答-------------------- 用entity framework 添加字段设置为可以为空。。随便你添加,不用修改任何代码。如果手写3层,添加字段要累死人呢。
补充:.NET技术 , C#