天天看点

Green.AgileMapper项目(2)-新增DO和DTO代码生成

    代码生成我本想利用T4模板,但是由于我们的项目IDE版本是VS2008,对于T4的参数传递支持还不是很友好,你可能说用AppDomain.SetData,或者CallContext.LogicalSetData,但是可惜我们的饿MappingRule是不可序列化的,所以最后我只得采用了字符串拼接最笨的办法,为了应对生成策略不同,在这里我们加入了策略模式来应付,来看看代码结构吧:

<a href="http://images.cnblogs.com/cnblogs_com/whitewolf/201203/201203312050275411.png"></a>

   在这里只支持对do的二级属性映射为dto的平面属性,全部针对IMappingRule生成代码,在这里为了生成合法的代码而非表达式,对以前的表达式进行了重新的标准约定,在代码注释。以及对上个版本的List转换进行了多次重载,主要为了满足DTo到DO对象的特殊要求,因为我们在领域开发存储DTO的时候都是需要先取出DO对象在根据DTO在DO对象的基础上进行修改,以便ORM领域框架或者UOW的跟踪记录。

View Code

最后的生成文件: 

1.cs:

2.cs 

3.cs: 

本文转自破狼博客园博客,原文链接:http://www.cnblogs.com/whitewolf/archive/2012/03/31/AgileMapper2.html,如需转载请自行联系原作者

上一篇: (?&gt;?&lt;?)
下一篇: ios 人脸检测

继续阅读