T4模板_入門


T4模板作為VS自帶的一套代碼生成器,功能有多強大我也不知道,最近查找了一些資料學習一下,做個筆記

更詳細的資料參見:

MSDN: http://msdn.microsoft.com/zh-cn/library/bb126445.aspx

你必須懂的T4模板:深入淺出:http://www.cnblogs.com/heyuquan/archive/2012/07/26/2610959.html

准本工作:

 T4模板是沒有顏色高亮提示的,我們可以安裝vs支持的插件,我安裝的是  T4 Editor,當然還有其他比如 Visual T4等,

 T4 Editor下載地址:http://t4-editor.tangible-engineering.com/Download_T4Editor_Plus_ModelingTools.html

一 .T4模板分類

     T4模板分為 文本模板 和 運行時文本模板,其中文本模板 程序的源代碼在程序編譯前就被使用(寫代碼時開始編譯),可以直接轉換成項目的程序源碼,運行時文本模板,即運行時開始編譯,生成各式文檔。

下面以 運行時文本模板 為例創建一個簡單的實例:

 

其中RuntimeTextTemplate1.tt為創建的運行時文本模板,在“添加-新建項”中可以找到“運行時文本模板”

創建好的空的RuntimeTextTemplate1.tt有一些初始代碼

 

<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".html"#>

 

<#@ template language="C#" #> 指定使用的編程語言是C#,<#@ output extension=".html"#>指定輸出的是html文件,其他的暫時不管,語法暫時不考慮,接着后面添加簡單的測試代碼:
<h3>運行時文本模板</h3>
<div>
hello World
</div>

下面我們查看這個模板,創建一個web窗體應用程序,WebPrintTest.T4,在index的Page_Load()中加入一下代碼

RuntimeTextTemplate1 T4= new RuntimeTextTemplate1();
string str = T4.TransformText();
print.InnerHtml = str;

就可以在index.aspx中顯示生成的模板,

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="WebPrintTest.T4.Index" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div id="print" runat="server">    
    </div>
    </form>
</body>
</html>

查看一下:

運行時文檔模板會產生一個類(以模板名稱命名),查看一下部分代碼:

 二 .調試

        如果要調試T4文本模板文件,首先將模板指令<#@ template #> 的debug特性值設置為true,然后倒入命名空間

<#@ import namespace="System.Diagnostics" #>

        若要在模板執行的特定點啟動調試器,請插入對 Debugger.Launch() 的調用。 若要在后續的點處中斷執行,請插入對 Debugger.Break() 的調用,【F10】單步調試

調試過程:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM