T4模板 入門

2022-01-30 16:01:32 字數 1691 閱讀 4983

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

更詳細的資料參見:

msdn:

你必須懂的t4模板:深入淺出:

t4模板是沒有顏色高亮提示的,我們可以安裝vs支援的外掛程式,我安裝的是 t4 editor,當然還有其他比如 visual t4等,

t4模板分為 文字模板 和 執行時文字模板,其中文字模板 程式的源**在程式編譯前就被使用(寫**時開始編譯),可以直接轉換成專案的程式原始碼,執行時文字模板,即執行時開始編譯,生成各式文件。

下面以 執行時文字模板 為例建立乙個簡單的例項:

其中runtimetexttemplate1.tt為建立的執行時文字模板,在「新增-新建項」中可以找到「執行時文字模板」

建立好的空的runtimetexttemplate1.tt有一些初始**

c#" #>

system.core

" #>

system.linq

" #>

system.text

" #>

system.collections.generic

" #>

.html

"#>

c#" #> 指定使用的程式語言是c#,指定輸出的是html檔案,其他的暫時不管,語法暫時不考慮,接著後面新增簡單的測試**:

hello world

下面我們檢視這個模板,建立乙個web窗體應用程式,webprinttest.t4,在index的page_load()中加入一下**

runtimetexttemplate1 t4= new runtimetexttemplate1();

string str = t4.transformtext();

print.innerhtml = str;

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

c#" autoeventwireup="

true

" codebehind="

index.aspx.cs

" inherits="

webprinttest.t4.index

" %>

"">

檢視一下:

執行時文件模板會產生乙個類(以模板名稱命名),檢視一下部分**:

如果要除錯t4文字模板檔案,首先將模板指令 的debug特性值設定為true,然後倒入命名空間

system.diagnostics

" #>

若要在模板執行的特定點啟動偵錯程式,請插入對 debugger.launch() 的呼叫。 若要在後續的點處中斷執行,請插入對 debugger.break() 的呼叫,【f10】單步除錯

除錯過程:

T4模板語法

t4,即4個t開頭的英文本母組合 text template transformation toolkit。t4文字模板,即一種自定義規則的 生成器。根據業務模型可生成任何形式的文字檔案或供程式呼叫的字串。模型以適合於應用程式域的形式包含資訊,並且可以在應用程式的生存期更改 template deb...

CodeFirst時使用T4模板

我們都知道t4模板用於生成相似 在dbfirst和modelfirst條件下我們很容易從.edmx下獲取所有實體類和其名稱,並且通過我們定義的模板和某些遍歷工作為我們生成所需要的相似 但是codefirst模式下,我們沒有edmx,從哪獲取所有類名呢?難道要我們乙個個把entity實體層類名寫進陣列...

T4模板建立多個方法

最近在學sping.net,用到了t4模板,由於技術發展原因,學習的是舊架構版本,新架構有些問題。經過多次嘗試修改後,得以解決,分享出來,供參考。另外,還行大佬們多多批評指正,感激不盡。舊架構 template language c debug false hostspecific true inc...