Home >Database >Mysql Tutorial >CodeSmith实用技巧(十):通过编程执行模版

CodeSmith实用技巧(十):通过编程执行模版

WBOY
WBOYOriginal
2016-06-07 15:10:561453browse

CodeSmith 在执行模版时通过调用一些 API 来完成的,主要经过了以下这几步的操作: l 编译一个模版 l 显示编译错误信息 l 创建一个新的模版实例 l 用元数据填充模版 l 输出结果 下面这段代码显示了这些操作: CodeTemplateCompilercompiler = new CodeTempla

CodeSmith在执行模版时通过调用一些API来完成的,主要经过了以下这几步的操作:

l         编译一个模版

l         显示编译错误信息

l         创建一个新的模版实例

l         用元数据填充模版

l         输出结果

下面这段代码显示了这些操作:

CodeSmith实用技巧(十):通过编程执行模版CodeTemplateCompiler compiler = new CodeTemplateCompiler("..\\..\\StoredProcedures.cst");
CodeSmith实用技巧(十):通过编程执行模版compiler.Compile();
CodeSmith实用技巧(十):通过编程执行模版 
CodeSmith实用技巧(十):通过编程执行模版
if (compiler.Errors.Count == 0)
CodeSmith实用技巧(十):通过编程执行模版CodeSmith实用技巧(十):通过编程执行模版
CodeSmith实用技巧(十):通过编程执行模版{
CodeSmith实用技巧(十):通过编程执行模版    CodeTemplate template 
= compiler.CreateInstance();
CodeSmith实用技巧(十):通过编程执行模版 
CodeSmith实用技巧(十):通过编程执行模版    DatabaseSchema database 
= new DatabaseSchema(new SqlSchemaProvider(), @"Server=(local)\NetSDK;Database=Northwind;Integrated Security=true;");
CodeSmith实用技巧(十):通过编程执行模版    TableSchema table 
= database.Tables["Customers"];
CodeSmith实用技巧(十):通过编程执行模版 
CodeSmith实用技巧(十):通过编程执行模版    template.SetProperty(
"SourceTable", table);
CodeSmith实用技巧(十):通过编程执行模版    template.SetProperty(
"IncludeDrop"false);
CodeSmith实用技巧(十):通过编程执行模版    template.SetProperty(
"InsertPrefix""Insert");
CodeSmith实用技巧(十):通过编程执行模版 
CodeSmith实用技巧(十):通过编程执行模版    template.Render(Console.Out);
CodeSmith实用技巧(十):通过编程执行模版}

CodeSmith实用技巧(十):通过编程执行模版
else
CodeSmith实用技巧(十):通过编程执行模版CodeSmith实用技巧(十):通过编程执行模版
CodeSmith实用技巧(十):通过编程执行模版{
CodeSmith实用技巧(十):通过编程执行模版    
for (int i = 0; i  compiler.Errors.Count; i++)
CodeSmith实用技巧(十):通过编程执行模版CodeSmith实用技巧(十):通过编程执行模版    
CodeSmith实用技巧(十):通过编程执行模版{
CodeSmith实用技巧(十):通过编程执行模版        Console.Error.WriteLine(compiler.Errors[i].ToString());
CodeSmith实用技巧(十):通过编程执行模版    }

CodeSmith实用技巧(十):通过编程执行模版}

CodeSmith实用技巧(十):通过编程执行模版
CodeSmith实用技巧(十):通过编程执行模版

在这里我们用了

Render方法,其实CodeTemplate.RenderToFileCodeTemplate.RenderToString方法可能更有用,它可以直接让结果输出到文件中或赋给字符型的变量。

注意:该功能只能在CodeSmith专业版中使用
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn