根据数据库记录动态生成C#类及其公共属性并动态执行的解决方案
2017-05-19 17:23
543 查看
问题:
C#中,想动态产生这么一个类:
public class StatisticsData
{
public string order_no { get; set; }
public int qty { get; set; }
public int ocv1_plan { get; set; }
public int ocv1_A { get; set; }
public int ocv1_Ba { get; set; }
// ....
public int ocv2_plan { get; set; }
public int ocv2_A { get; set; }
public int ocv2_B { get; set; }
// ....
public int ocv2_N { get; set; }
public int ocv3_plan { get; set; }
public int ocv3_A { get; set; }
// ....
public int ocv3_X { get; set; }
public int ocv4_plan { get; set; }
public int ocv4_A { get; set; }
// ....
public int ocv4_T { get; set; }
// ....
}
需要用代码动态生成,因为上面的ocv1,2...以及Rank等级都是从数据库中取记录,有什么样的记录,有多少条记录,不确定,因此需要动态生成。
其中部分公共属性是固定的,而另一部分则是动态的,比如:ocv数字_xxx。
可能有多个不定的ocv数字及_xxx,分别根据一个List<string> listOcv(工序列表)和一个Dictionary<string, string[]> dictRank(等级列表)得到:
List<string> listOcv = new List<string>();
listOcv.Add("ocv1");
listOcv.Add("ocv2");
listOcv.Add("ocv3");
listOcv.Add("ocv4");
//...
Dictionary<string, string[]> dictRank=new Dictionary<string, string[]>();
dictRank.Add("ocv1", new string[]{"plan","A","Ba"});
dictRank.Add("ocv2", new string[]{"plan","A","B", ..., "N"});
dictRank.Add("ocv3", new string[]{"plan","A", ..., "X"});
dictRank.Add("ocv4", new string[]{"plan","A", ..., "T"});
思考其解决方案,提示:用DynamicObject 类继承或.net反射。
C#中,想动态产生这么一个类:
public class StatisticsData
{
public string order_no { get; set; }
public int qty { get; set; }
public int ocv1_plan { get; set; }
public int ocv1_A { get; set; }
public int ocv1_Ba { get; set; }
// ....
public int ocv2_plan { get; set; }
public int ocv2_A { get; set; }
public int ocv2_B { get; set; }
// ....
public int ocv2_N { get; set; }
public int ocv3_plan { get; set; }
public int ocv3_A { get; set; }
// ....
public int ocv3_X { get; set; }
public int ocv4_plan { get; set; }
public int ocv4_A { get; set; }
// ....
public int ocv4_T { get; set; }
// ....
}
需要用代码动态生成,因为上面的ocv1,2...以及Rank等级都是从数据库中取记录,有什么样的记录,有多少条记录,不确定,因此需要动态生成。
其中部分公共属性是固定的,而另一部分则是动态的,比如:ocv数字_xxx。
可能有多个不定的ocv数字及_xxx,分别根据一个List<string> listOcv(工序列表)和一个Dictionary<string, string[]> dictRank(等级列表)得到:
List<string> listOcv = new List<string>();
listOcv.Add("ocv1");
listOcv.Add("ocv2");
listOcv.Add("ocv3");
listOcv.Add("ocv4");
//...
Dictionary<string, string[]> dictRank=new Dictionary<string, string[]>();
dictRank.Add("ocv1", new string[]{"plan","A","Ba"});
dictRank.Add("ocv2", new string[]{"plan","A","B", ..., "N"});
dictRank.Add("ocv3", new string[]{"plan","A", ..., "X"});
dictRank.Add("ocv4", new string[]{"plan","A", ..., "T"});
思考其解决方案,提示:用DynamicObject 类继承或.net反射。
相关文章推荐
- 根据数据库的记录动态生成菜单并添加相应的单击事件
- 在winform中根据数据库信息动态生成菜单
- 利用Java反射机制和Javassist实现Java对象及其属性的动态创建生成
- Spring学习总结(16)——Spring AOP实现执行数据库操作前根据业务来动态切换数据源
- windows :TPC-H测试的数据库模式生成及其数据导入MySQL的教程记录
- 利用Java反射机制和Javassist实现Java对象及其属性的动态创建生成
- 根据数据库动态生成 title
- c#动态生成word,在本地可以执行,但发布到iis上出错解决方案
- Extjs 3根据数据库动态生成checkboxgroup(extjs系列1)
- 根据表名得到表信息,包括字段说明,生成C#类属性
- 冷门规则引擎drools:从数据库中,根据drt动态生成规则并附上具体项目逻辑
- 如何让从数据库中查询出符合条件的记录,然后给每个记录自动加上序号,序号是根据符合条件的记录多少在随时变化.而且也会在以查询生成的报表中显示出来.谢谢
- 【SQL】根据多行记录的公共属性,将不同类型对应的值合并到一行中
- ASP.NET中服务器控件Table动态生成表格及其属性介绍
- ASP.NET TreeView根据数据库动态生成
- ExtJs学习笔记 根据数据库生成动态多级树
- C#动态生成html页时候的问题及其解决方案
- ASP.NET TreeView根据数据库动态生成
- C# 根据实体类的属性动态生成字符串
- 动态SQL语句根据数据库列来查询数据,动态的生成列名称