使用T4模板動態生成郵件內容並儲存到任意位置

2022-02-08 16:42:22 字數 1799 閱讀 9956

一.基礎概念介紹

t4模板是擴充套件名為 .tt 的文字檔案。 他分為設計時模板 和執行時模板。主要區別在於在vs中右鍵點選檔案,開啟「屬性」,在「自定義工具」一欄中的值分別如下:

設計時模板: texttemplatingfilegenerator

執行時模板:texttemplatingfilepreprocessor

二.模板轉換

當然設計時模板可以轉為執行時模板,只要將該檔案的「自定義工具」屬性設定為 texttemplatingfilepreprocessor即可。

但是執行時模板很多情況下不能轉為設計時模板。

三.執行時模板的使用

這裡講解通過c#**來控制,何時執行t4模板來產生郵件內容,並儲存到指定的位置。

1.新增乙個t4模板,修改為執行時模板

multiarticle.tt

<#@ template language="

c#" #>

"text-align:center;

">

"600" cellpadding="

0" cellspacing="

0" border="

0" style="

margin:0 auto;

">"

width:600px;text-align:left;font:12px/15px simsun;color:#000;background:#fff;

">

<#=subject #>

<# foreach(article item in

articlelist)

#>

2.這個模板需要乙個實體類表示郵件的內容

乙個是以模板名+code結尾:multiarticlecode.cs,注意類名與模板名要相同,都是multiarticle。

public

class

article

public

string content

}public

partial

class

multiarticle

public listarticlelist

public multiarticle(string subject, listarticles)

}

3.動態執行

static

void main(string

args)

multiarticle mod=new

multiarticle(subject,artlist);

//transformtext方法是模板編譯時自動產生的,

//這也是前面有提到的,模板multiarticle.tt的命名要與multiarticlecode.cs中的類名相同的原因,

//利用分部類partial,就可以呼叫該transformtext方法了。

string pagecontent =mod.transformtext();

//將pagecontent儲存到任何你想儲存的地方

system.io.file.writealltext("

outputpage.html

", pagecontent, encoding.utf8);

}

使用T4模板動態生成郵件內容並儲存到任意位置

使用t4模板動態生成郵件內容並儲存到任意位置 一.基礎概念介紹 設計時模板 texttemplatingfilegenerator 執行時模板 texttemplatingfilepreprocessor 二.模板轉換 當然設計時模板可以轉為執行時模板,只要將該檔案的 自定義工具 屬性設定為 tex...

CodeFirst時使用T4模板

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

SqlSugar框架T4模板的使用

一 t4模板說明 1.t4模板是用來生成model層實體類的 2.檔案字尾為.tt 3.需要修改配置主要有 引用的sqlsugar.dll的位置 生成實體類的位置及生成實體類的命名空間 4.t4模板生成 對資料庫有要求,資料庫應該是不區分大小寫的,如果你建立的資料庫是否區分大小寫的 chinese ...