这是 CodeSmith 的主要用例之一。我正在用 VB 编写这个模板,但它可以用来生成任何类型的文件。Codesmith 可以使用 C#,随意将其转换为 C#,相当简单的练习
第一部分定义了一些必须引用的程序集。然后导入允许模板引用这些程序集
'SourceTable' 属性是魔法发生的地方。当您第一次编译表格时,按 F4 并出现模板属性屏幕。
单击 SourceTable 行右侧的省略号“...”并指向您的数据库和表。您将需要定义一个新的 DataSource ,这需要一个连接到您的数据库的字符串。
一个例子是
Data Source=DEVMACHINE;Initial Catalog=MyDB;Persist Security Info=True;User ID=myUserId;Password=myPassword
这会让你开始。在例程 DeclarationFromColumn 中,您需要从 SQL 服务器类型声明 ac# 类型。
对我有用的是学习一个你已经拥有的完整的工人阶级,将它粘贴到模板中,然后开始寻找你在所有领域都运行过的地方。
在每个实例中,编写一些模板代码来生成该列表。
所有功能都需要放在<Script></Script>
标签中。
<%@ Template Language="VB"%>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Assembly Name="CodeSmith.BaseTemplates" %>
<%@ Assembly Name="System.Data" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Import Namespace="System.Data" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="Table to get the data from." %>
<% dim i as integer %>
public class RespObj
{
<% for i = 0 to SourceTable.Columns.Count - 1 step 1 %>
<%= DeclarationFromColumn(SourceTable.Columns(i)) %>
<% next %>
}
<script runat="template">
function DeclarationFromColumn(clm as ColumnSchema) as string
return "public " & clm.NativeType & " " & clm.Name & " {get; set;}"
end function
</Script>