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 %>

  输入框如下:

  

  输出如下:

  

你可能感兴趣的:(code)