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(转)
工具列表 1. **树莓派**(型号不要求,本人使用的是3B) 2. **usb麦克风**(某宝有卖,我就不打广告了) 用来录音 3. **音响或者喇叭**(某宝也有卖) 用来播放 以上就是需要的工具 ...
- 在Java中调用Python代码
极少数时候,我们会碰到类似这样的问题:与A同学合作写代码, A同学只会写Python,不熟悉Java ,而你只会写Java不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方 ...
- KVC和KVO的理解(底层实现原理)
1.KVC,即是指 NSKeyValueCoding,一个非正式的Protocol,提供一种机制来间接访问对象的属性.而不是通过调用Setter.Getter方法访问.KVO 就是基于 KVC 实现的 ...
- 总结django知识点
一.视图函数: 请求对象-----------request: 1.HttpRequest.body: 请求原数据 2.HttpRequ ...
- MATLAB选出一个数组里n个元素的所有组合
用nchoosek(A,n) 如: nchoosek([1,5,3,2,4,0],3) nchoosek([1,5,3,2],2)ans = 1 5 1 3 1 ...
- review23
文件的创建与删除 当使用File类创建一个文件对象后,例如 File file = new File("C:\\myletter", "letter.txt") ...
- Word 2010怎么自动添加文献引用
1.将光标移至在需要添加引用的地方,比如我下图中在这段文字最后添加一个引用(为了方便说明) 2.(2010版本) 3.点击上面的“引用”,然后点击蓝圈里面的小图标,出现下面对话框,并设置成如图,点 ...
- 2017-03-05 CentOS中配置守护服务(Supervisor)监听dotnet core web程序的运行
我们继续解决上篇博客的问题,我这个人有个毛病,不喜欢遗留什么问题,也不喜欢问题说不明白,具体要怎么解决一定要详尽,因为经常自己遇到问题的时候,去翻别人的博客,就会遇到这样的问题,很苦恼,又说废话了. ...
- Android开发中dp、dpi、px的区别(转)
一.基本概念 - dp:安卓中的相对大小 - dpi:(dot per inch)每英寸像素多少 - px:像素点 二.详细说明 1.px和dpi - px: 平常所说的1920×1080只是像素数量 ...
- 在ubuntu上安装svn+apache2
参考网站: http://www.thinksaas.cn/group/topic/335434/ http://blog.sina.com.cn/s/blog_3eba8f1c0100dqk1.ht ...