CodeSmith 基本语法

Posted jack_孟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 = 1; %>

三、<%=  %> 输出到模板

  要输出到模板的变量值写在<%= %>标记内

  示例:

<% int x = 1; %>
<%= x %>
<%= DateTime.Now.ToShortDateString(); %>

  输出如下:

  

四、<script></script> 定义方法

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

  示例:

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

五、声明外部输入变量

  有些变量,可能我们需要在生成的时候才输入,这个时候就需要声明外部变量了。声明外部变量的语法如下:

<%@ Property Name="Count" Type="Int32" Default="10" Optional="true" Category="Context" Description="外部输入的变量" %>

  各个属性的说明:

  1. Name:要声明的变量的名字。
  2. Type:要声明的属性的类型。比如(string,Int32等等)。
  3. Category:是说你声明的这个属性的类别(CodeSmith会按分类分开展示让你输入)。
  4. Description:此模板的说明描述。
  5. Default:当外部变量没有输入时,使用的默认值。
  6. Optional:是否允许为空(即不输入)。

  示例:

<%@ CodeTempLate Language="C#" ResponseEncoding="UTF-8" Description="第一个模板程序" %>
<%@ Property Name="Count" Type="Int32" Default="10" Optional="true" Category="类别1" Description="外部输入的变量" %>
<%@ Property Name="类别2说明" Type="Int32" Default="10" Optional="true" Category="类别2" Description="外部输入的变量" %>
你输入的值是:<%= Count %>

  输入框如下:

  

  输出如下:

  

 

出处:http://www.cnblogs.com/kissdodog/archive/2013/04/16/3024368.html

以上是关于CodeSmith 基本语法的主要内容,如果未能解决你的问题,请参考以下文章

CodeSmith 简单使用和常用模板

代码生成工具——CodeSmith

CodeSmith介绍和常见问题解决方案

CodeSmith 使用说明

CodeSmith 多模板按目录树批量自动生成代码

CodeSmith公共类维护