CodeSmith 基本语法(二)
CodeSmith的C#语法与Asp.net MVC2的模板语法很像。
一、声明
编写模板代码的第一步是先进行一段声明:
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="Generates a class including a special informational header" %>
以上声明的作用是告诉CodeSmith你的开发语言是C#,生成的目标代码是C#,最后是这个模板的描述信息。
二、<% %> C#代码
C#代码写在<% %>标记内。
示例:
<% int x = ; %>
三、<%= %> 输出到模板
要输出到模板的变量值写在<%= %>标记内
示例:
<% int x = ; %>
<%= x %>
<%= DateTime.Now.ToShortDateString(); %>
输出如下:

四、<script></script> 定义方法
CodeSmith中定义一个方法的方式与C#有点不同,它必须写在<script></script>标记内。
示例:

<% int x = ; %>
<% int y = ; %>
<%= getMax(,) %>
<script runat="template">
public int getMax(int a, int b)
{
return a > b ? a : b;
}
</script>

五、声明外部输入变量
有些变量,可能我们需要在生成的时候才输入,这个时候就需要声明外部变量了。声明外部变量的语法如下:
<%@ Property Name="Count" Type="Int32" Default="" Optional="true" Category="Context" Description="外部输入的变量" %>
各个属性的说明:
- Name:要声明的变量的名字。
- Type:要声明的属性的类型。比如(string,Int32等等)。
- Category:是说你声明的这个属性的类别(CodeSmith会按分类分开展示让你输入)。
- Description:此模板的说明描述。
- Default:当外部变量没有输入时,使用的默认值。
- Optional:是否允许为空(即不输入)。
示例:
<%@ CodeTempLate Language="C#" ResponseEncoding="UTF-8" Description="第一个模板程序" %>
<%@ Property Name="Count" Type="Int32" Default="" Optional="true" Category="类别1" Description="外部输入的变量" %>
<%@ Property Name="类别2说明" Type="Int32" Default="" Optional="true" Category="类别2" Description="外部输入的变量" %>
你输入的值是:<%= Count %>
输入框如下:

输出如下:

出处:http://www.cnblogs.com/kissdodog/archive/2013/04/16/3024368.html
CodeSmith 基本语法(二)的更多相关文章
- PHP语法(二):数据类型、运算符和函数
相关链接: PHP语法(一):基础和变量 PHP语法(二):数据类型.运算符和函数 PHP语法(三):控制结构(For循环/If/Switch/While) 这次整理了PHP的数据类型.运算符和函数. ...
- Python 基础语法(二)
Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...
- web前端学习python之第一章_基础语法(二)
web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...
- MySQL之单表查询 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询
MySQL之单表查询 阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER B ...
- Pocket英语语法---二、指示代词和不定代词是什么
Pocket英语语法---二.指示代词和不定代词是什么 一.总结 一句话总结: 指示代词:标识人或事物的代词,用来代替前面已提到过的名词 this.these.that.those不定代词:指代不确定 ...
- Vue模板语法(二)
Vue模板语法(二) 样式绑定 class绑定 使用方式:v-bind:class="expression" expression的类型:字符串.数组.对象 1.2 style绑 ...
- Shell系列(36)- for循环语法二简介及批量添加删除用户
for循环语法二 for ((初始值;循环控制条件;变量变化)) do 程序 done 例子 例子-1 求和工具 需求:根据用户输入的数字,求1~输入所有数字的和 脚本: #!/bin/bash re ...
- Python基本语法[二],python入门到精通[四]
在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...
- ios -- 教你如何轻松学习Swift语法(二)
前言:swift语法基础篇(二)来了,想学习swift的朋友可以拿去参考哦,有兴趣可以相互探讨,共同学习哦. 一.可选类型(重点内容) 1.什么是可选类型? 1.1在OC开 ...
随机推荐
- Python学习进程(3)Python基本数据类型
本节介绍在Python语法中不同的变量数据类型. (1)基本数据类型: >>> a=10; >>> b=10.0; >>> c=T ...
- LVS 命令使用
LVS 命令使用 查询命令 ipvsadm -L # 查看lvs负载均衡信息ipvsadm -L -n # -n 查看IP端口ipvsadm -L -c # 显示当前连接ipvsadm -L -- ...
- windows 服务安装报错
使用windows服务开发的定时任务,在win7上都运行良好,在windows server 2008上运行报错,报错信息如下 错误应用程序名称: GCWindowsService.exe,版本: 1 ...
- iOS_KVC与KVO
目 录: 一.KVC 二.KVO ...
- Windows10在待机状态时会卡屏的解决方案
问题:Windows10在待机时,会出现卡屏(鼠标.键盘都无法操作,只能重启电脑),区别于平时我们看得比较多的花屏.蓝屏.黑屏. 原因:经过一段时间的待机,Windows10会进入到降电节能模式,由于 ...
- 自动生成Mapper代码
public class BeanMapperTest { @Test public void build() throws Exception { Class clazz = RiskAccess. ...
- 微信开发之SSM环境搭建
首先,感谢大神的文章,地址:http://blog.csdn.net/zhshulin/article/details/37956105# 第一步:新建maven项目 如有需要,查看之前的文章:从配置 ...
- Springboot- pagehelper使用
1.添加pagehelper依赖 <dependency> <groupId>org.github.pagehelper</groupId> <artifac ...
- js的constructor
js创建一个构造函数,会默认在原型链上添加一个constructor的属性,它保存了构造函数内的代码. 一般情况下我们不需要去改动它,但是有些时候我们会不经意的改写它. 比如下面这个例子: var F ...
- 华丽导航CSS下拉菜单特效
华丽导航CSS下拉菜单特效,华丽导航,导航特效,CSS,下拉菜单,华丽特效. 代码地址:http://www.huiyi8.com/sc/26811.html 风景图片网:http://www.hui ...