通过代码生成机制实现强类型编程-CodeSimth版-阿里云开发者社区

开发者社区> zting科技> 正文

通过代码生成机制实现强类型编程-CodeSimth版

简介:
+关注继续查看

  一直想写一个Code生成系列,但写到CodeSimth,发觉在TerryLee 和努力学习的小熊 两位大牛的博客里讲很详尽,所以就像写些示例方面的,但是苦于没有想到写些什么。最近Artech写了两篇从数据到代码——通过代码生成机制实现强类型编程--上篇和下篇,大牛写得是CodeDom的,今天我就想借借大牛的示例写个CodeSimth版的,希望Artech不要怪我,呵呵。我的Code生成技术已经写了CodeDom的见CodeDom系列目录,欢迎各位园友指教。

        好直接到主题。首先是数据实体MessageEntry(我到老A的基础上添加了description属性作为代码字段描述):

 

代码

 

 

在我的机子上的COdeSimth是2..0版本的所以不能使用Linq命名空间,我又想利用这个空间,比较快捷,所以我就在先3.0转化为

Dictionary<string, List<MessageEntry>>实体再传入模板:

Code:

 

代码

 

 

这下几可开始写模板了,见下Code:

 

代码

 

 

很简单,就不说了,如果有问题请留言,其中命名空间完全可以以属性方式传入。

XMl实体用的是老A的:

 

复制代码
ExpandedBlockStart.gif代码
1 <?xml version="1.0" encoding="utf-8" ?>  
2 <messages>   
3 <message id="MandatoryField" value="The {0} is mandatory."  category="Validation"  description="description" />   
4 <message id="GreaterThan" value="The {0} must be greater than {1}."  category="Validation" description="description" />   
5 <message id="ReallyDelete" value="Do you really want to delete the {0}."  category="Confirmation" description="description" />  
6 </messages>
7 
8 
复制代码

 

 

我想脱离CodeSimth工具,所以在建立了一个控制台程序,引用CodeSmith.Engine.dll程序集。

Code:

 

代码

 

 

生成后的代码:

 

代码

 

 

ok,全部完成。同时你也可以完全集成与VS中利用VSX Vs扩展,可以参考明年我18 的VSX系列



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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
写一个通用的代码生成器
       代码生成器对于JAVA码农来说并不陌生。在一些业务性比较强,但编码比较规范的项目中,往往会有大量的重复或者类似的代码要写。比如对表的增删改查,比如生成用于远程调用的客户端方法存根等等。面对这种情况,程序员通常的做法就是拿一个现成模块的代码copy过来再改改。
2917 0
MyBatis Generator 代码生成器 快速入门指南
要使用MyBatis Generator(MBG)快速启动并运行,请按照下列步骤操作:1、适当地创建并填写配置文件。至少必须指定:一个元素来指定如何连接到目标数据库一个元素来指定生成的Java模型对象的目标包和目标项目用于指定生成的SQL映射文件的目标包和目标项目的元素(可选)一个元素来指定生成的客户端接口和类的目标包和目标项目(如果不希望生成Java客户端代码,则可以省略元素)至少有一个数据库元素有关配置文件的示例,请参阅XML配置文件参考页面。
805 0
MyBatis Generator (MBG) 代码生成器简介
MyBatis Generator(MBG)是MyBatis MyBatis和iBATIS的代码生成器。它将生成所有版本的MyBatis的代码,以及版本2.2.0之后的iBATIS版本。它将内省数据库表(或许多表),并将生成可用于访问表的工件。
1331 0
DL之RNN:人工智能为你写代码——基于TF利用RNN算法实现生成编程语言代码(C++语言)、训练&测试过程全记录(二)
DL之RNN:人工智能为你写代码——基于TF利用RNN算法实现生成编程语言代码(C++语言)、训练&测试过程全记录
29 0
代码生成框架Velocity
代码生成框架VelocityVelocity是一个基于Java的模板引擎,用户可以使用模板语言VTL来引用由Java代码定义的对象。
1018 0
crudapi 无需编程生成CRUD增删改查RESTful API
本文通过学生对象为例,无需编程,通过配置实现CRUD RESTful API。
100 0
+关注
3550
文章
0
问答
文章排行榜
最热
最新