您的位置:首页 > 数据库

根据数据库记录动态生成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反射。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐