您的位置:首页 > 编程语言

如何使用CodeSmith批量生成代码(原创系列教程)

2015-07-24 16:47 429 查看
下面我会一步步的解释如何用CodeSmith实现预期的结果的,事先声明一下,在此只做一个简单的Demo,并不详细的讲解CodeSmith各个强大的功能,有兴趣的朋友可以打开CodeSmith的帮助文档了解.我只做个抛砖引玉,希望能激起大家更多思想的火花~

先看看CodeSmith的工作原理:

代码

<script runat="template"> //生成实体Entity类 privatevoid GenerateEntityClasses() { CodeTemplate Template =new EntityTemplate(); foreach(TableSchema table inthis.SourceDatabase.Tables) { string FileDirectory = OutputDirectory +"\\"+ table.Name +".cs"; //生成模板 Template.SetProperty("Table",table); //文件输出 Template.RenderToFile(FileDirectory,true); Debug.WriteLine(FileDirectory +" 创建成功."); } } </script>

CodeTemplateTemplate = new EntityTemplate();  就是创建了一个新的模板

foreach(TableSchematable in this. SourceDatabase.Tables){} 表示循环输出数据库中的表

Template.SetProperty("Table",table); 就是向模板设置属性,还记得我们在Entity.cst里面设置了一个Table属性吗,我们就是通过这个方法给这个属性设值的.

Template.RenderToFile(FileDirectory,true); 表示将Temlate里的内容全部输出到FileDirectory目录中,true表示如果文件存在直接覆盖.



11. 函数写好了,离成功不远啦,我们在test.cst的最后再添加如下代码,用于调用刚刚写好的函数.至此,模板文件的制作已经完成.

<% //创建实体层Entity类 this.GenerateEntityClasses();
Debug.WriteLine("OK"); %>



12. 好啦,现在只要设置我们要导出的数据库和输出目录就可以运行看结果啦,点击CodeSmith主窗体右下角Properities面板中SourceDatabase属性栏右侧的…按钮,弹出数据库设置对话框,我们要在此添加一个新的数据库连接:



13. 点击Add按钮,属性设置如图,我们选择的是在前一章用PowerDesigner创建好的PD_test数据库:



14. 点击OK,回到数据库选择对话框,选择刚刚创建好的数据库连接:



15. 接着是设置目标文件输出目录,我在这里设置为桌面的一个新建文件夹:



16. OK,万事俱备,可以点击运行按钮让CodeSmith为我们批量生成代码啦:



打开生成的文件,就可以看到我们期待看到的代码啦:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: