【代码生成器】codesmith-认识codesmith(二)

操作界面

  • 资源管理
    • 模板资源:.cst 模板的存放目录,自行规划目录结构
    • 数据库资源:管理数据库连接的界面
    • Map 资源:Map 文件的添加编辑界面
  • 属性管理:编写 .cst 模板的属性面板
  • 脚本编辑:主要的编辑模板界面
  • 编译操作:编译模板
  • 生成操作:生成代码

模板编写

编写模板的脚本支持 c# vb javascript 三种语言;支持性最好的是 c#,使用 javascript 写模板时无任何提示,vb 没用过;个人使用 c# 语言编写。

创建模板

创建文件夹使用 codesmith 打开文件夹,在模板资源管理中右键文件夹,新建一个c#模板

修改代码仅保留第一行:

1
<%@ Template Language="C#" TargetLanguage="Text" Description="描述" %>
  • Template 声明模板
  • Language=”C#” 指定模板使用的语言
  • TargetLanguage=”Text” 指定模板生成后的语言,支持很多中编程语言,指定了后会有对应语言的高亮提示(不需要高亮提示可以指定为“Text”);指定的语言与实际生成的文件后缀无关,实际生成文件的后缀可由编写模板代码决定的;理论上是能生成任何语言的代码
  • Description=”描述” 模板的描述信息

编写模板

编写 HTML 模板输出 hello world,使用 c# 定义一个变量,然后输出 HTML 填充变量的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ Template Language="C#" TargetLanguage="HTML" Description="描述" %>

<% string message = "hello world"; %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>代码生成</title>
</head>
<body>
<h1><%= message %></h1>
</body>
</html>

生成结果

可以看出,使用 <% %> 包裹 c# 代码,使用 <%= %> 输出 c# 变量,其他内容原样输出,其实就是模板引擎的语法。

代码生成的原理就是,使用某种语言的模板引擎,编写适合自己项目的代码模板,然后解析模板,生成需要代码。