0
点赞
收藏
分享

微信扫一扫

根据数据库记录动态生成C#类及其公共属性并动态执行的解决方案


问题:

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反射。


举报

相关推荐

0 条评论