在CodeSmith模板中使用自定义属性和方法

<%@ CodeTemplate Language="C#" TargetLanguage="C#" %>
<%@ Property Name="NameSpace" Type="String" %>
<%@ Property Name="ClassName" Type="String" %>
<%@ Property Name="Author" Type="String" %>
<%@ Property Name="FN" Type="FirstName" %>
<script runat="template">
//enum
public enum FirstName : int
{
    Zhang,
    Li,
    Wang
}
//method
public string GetLastName()
{
    return "San";
}
</script>
////////////////////////////////////////////////
// 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 %>()
        { }

        public string GetUserName()
        {
            return <% =FN + " " + GetLastName()%>;
        }
    }
}

生成的代码:

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

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

        public string GetUserName()
        {
            return Wang San;
        }
    }
}

在<script runat="template">和</script>之间可以定义一些CodeSmith的属性和方法,他们只能在CodeSmith模板中使用,不会在生成的代码中表现出来!

评论: 0 | 引用: 0 | 查看次数: 4058
发表评论
登录后再发表评论!