codesmith引用多个模板生成代码

<%--
Name:
Author:
Description:
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="Text" Src="" Inherits="" Debug="False" CompilerVersion="v3.5" Description="Template description here." %>
<%@ Register Name="EntityTemplate" Template="entity.cst" %>
<%@ Register Name="DAOTemplate" Template="dao.cst" %>
<%@ Register Name="BOTemplate" Template="bo.cst" %>
<%@ Property Name="Namespace" Type="System.String" Default="Beyondbit.App" Optional="True" Category="Strings" Description="This is a sample string property." %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Property Name="SourceTables" Type="SchemaExplorer.TableSchemaCollection" Optional="False" Category="Required"%>

<%--= SampleStringProperty --%>
<% Start(); %>


<script runat="template">

public void GenerateEntity(SchemaExplorer.TableSchema table, EntityTemplate template) {
template.SourceTable = table;
template.NameSpace = Namespace + ".Entity";
template.RenderToFile(".\\" + template.NameSpace + "\\" + table.Name + ".cs", true);
}

public void GenerateDAO(SchemaExplorer.TableSchema table, DAOTemplate template) {
template.SourceTable = table;
template.NameSpace = Namespace + ".DAO";
template.RenderToFile(".\\" + template.NameSpace + "\\DAO" + table.Name + ".cs", true);
}

public void GenerateBO(SchemaExplorer.TableSchema table, BOTemplate template) {
template.SourceTable = table;
template.NameSpace = Namespace + ".BO";
template.RenderToFile(".\\" + template.NameSpace + "\\BO" + table.Name + ".cs", true);
}

public void Start() {
EntityTemplate tmpEntity = this.Create<EntityTemplate>();
DAOTemplate tmpDAO = this.Create<DAOTemplate>();
BOTemplate tmpBO = this.Create<BOTemplate>();
foreach (SchemaExplorer.TableSchema t in SourceTables){
GenerateEntity(t, tmpEntity);
GenerateDAO(t, tmpDAO);
GenerateBO(t, tmpBO);
}
}
</script>

原文地址:https://www.cnblogs.com/yuanxiaoping_21cn_com/p/2808049.html