木子屋 Dnawo's BLOG

创建一个简单的CodeSmith模板

👤 dnawo 📅 2009-07-09 👁 4936 👍 0 💬 0 🔄 本站原创
打开CodeSmith.Pro.4.1.2,创建一个空白模板,输入以下内容:

<%@ CodeTemplate Language="C#" TargetLanguage="C#" %>
<%@ Property Name="NameSpace" Type="String" %>
<%@ Property Name="ClassName" Type="String" %>
<%@ Property Name="Author" Type="String" %>
<%@ Property Name="HavFun" Type="Boolean" %>
////////////////////////////////////////////////
// File:<% =ClassName %>.cs
// Description: Enter summary here after generation.
// Author:<% =Author %>
// Date:<% =DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") %>
////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Text;

namespace <% =NameSpace %>
{
    public class <% =ClassName %>
    {
        public <% =ClassName %>()
        { }

		<% if(HavFun) { %>
        public int Add(int a, int b)
        {
            return a + b;
        }
		<% }%>
    }
}

说明

·CodeTemplate指令表示当前文件是一个CodeSmith模板,使用C#语言;
·Property指令为当前模板定义一些属性,可在属性面板中设置各属性值,在模板的其他地方可通过属性名进行引用;

图片

运行后生成代码如下:

////////////////////////////////////////////////
// File:Class1.cs
// Description: Enter summary here after generation.
// Author:dnawo
// Date:2009-07-09 02:05:08
////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Text;

namespace MZWU
{
    public class Class1
    {
        public Class1()
        { }

        public int Add(int a, int b)
        {
            return a + b;
        }
    }
}

常见问题

问:生成代码出错,提示"c:\Documents and Settings\kuang\Application Data\CodeSmith\v4.1\Template Cache\1_cst.cs(40,16): error CS1518: 应输入 class、delegate、enum、interface 或 struct"?
答:将模板文件名改为非数字开头即可。

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 命名空间“Kaimo”已经包含了“Products”的定义 下一篇 → 在CodeSmith模板中使用自定义属性和方法