程式碼產生和 T4 文字範本
更新:2011 年 3 月
在 Visual Studio 中,「T4 文字範本」(T4 Text Template) 混合了文字區塊和可產生文字檔的控制邏輯。 控制邏輯會以 Visual C# 或 Visual Basic 撰寫為程式碼片段。產生的檔案可以是任何類型的文字,例如網頁、資源檔或任何語言的原始程式碼。
T4 文字範本有兩種:
執行階段 T4 文字範本 (「前置處理過的」範本) 會在應用程式中執行以產生文字字串,一般做為其輸出的一部分。
例如,您可以建立用來定義 HTML 網頁的範本:<html><body> The date and time now is: <#= DateTime.Now #> </body></html>
請注意,範本與產生的輸出類似。 範本與產生的輸出之間的相似性,有助於您避免在要變更範本時發生錯誤。
此外,範本也包含程式碼的片段。 您可以使用這些片段來重複文字區段,建立條件式區段,以及顯示應用程式的資料。
為產生輸出,應用程式會呼叫範本所產生的函式。 例如:
string webResponseText = new MyTemplate().TransformText();
應用程式可以在未安裝 Visual Studio 的電腦上執行。
若要建立執行階段範本,請將 [前置處理過的文字範本] 檔案加入至專案。 此外,您也可以加入純文字檔,並將其 [自訂工具] 屬性設為 [TextTemplatingFilePreprocessor]。
如需詳細資訊,請參閱使用前置處理過的 T4 文字範本在執行階段產生文字。 如需範本語法的詳細資訊,請參閱撰寫 T4 文字範本。
設計階段 T4 文字範本會在 Visual Studio 中執行,以定義原始程式碼的一部分以及應用程式的其他資源。
您通常會使用幾個範本讀取單一輸入檔案或資料庫中的資料,然後產生部分 .cs、.vb 或其他原始程式檔。 每個範本都會產生一個檔案, 並且在 Visual Studio 或 MSBuild 中執行。例如,輸入資料可以是組態資料的 XML 檔案。 每當您在開發期間編輯 XML 檔案時,文字範本就會重新產生應用程式程式碼的一部分。 其中一個範本可能類似下列範例:
<#@ output extension=".txt" #> <#@ assembly name="System.Xml" #> <# System.Xml.XmlDocument configurationData = ...; // Read a data file here. #> namespace Fabrikam.<#= configurationData.SelectSingleNode("jobName").Value #> { ... // More code here. }
視 XML 檔案中的值而定,產生的 .cs 檔案將與下面類似:
namespace Fabrikam.FirstJob { ... // More code here. }
另一個範例是,輸入可以是商務活動中的工作流程圖。 當使用者變更商務工作流程,或您與工作流程不同的新使用者開始工作時,很容易重新產生符合新模型的程式碼。
當需求變更時,設計階段範本會讓組態的變更更快速、更可靠。 如工作流程範例所示,輸入通常是依照商務需求定義的。 這樣比較容易與使用者討論變更。 因此,設計階段範本對敏捷式開發流程來說是很有用的工具。
若要建立設計階段範本,請將 [文字範本] 檔案加入至專案。 此外,您也可以加入純文字檔,並將其 [自訂工具] 屬性設為 [TextTemplatingFileGenerator]。
如需詳細資訊,請參閱使用 T4 文字範本在設計階段產生程式碼。 如需範本語法的詳細資訊,請參閱撰寫 T4 文字範本。
注意事項 |
---|
「模型」(Model) 一詞有時候被用來描述由一個或多個範本讀取的資料。 模型可以是以任何檔案或資料庫類型為形式的任何格式。 它不一定必須是 UML 模型或 Domain-Specific Language 模型。' 「模型」只指出資料可以依照商務概念定義,而非類似於程式碼。 |
文字範本轉換功能的名稱為 T4。
本章節內容
使用前置處理過的 T4 文字範本在執行階段產生文字
在任何會產生文字檔的應用程式中,先行編譯的文字範本是簡單而可靠的文字定義方法。 但是,此方法不可用於會在執行階段變更的文字範本。使用 T4 文字範本在設計階段產生程式碼
從模型產生程式碼和其他資源,可讓您藉由更新模型,來更新您的應用程式。建置流程中的程式碼產生
如果您已安裝 Visual Studio Visualization and Modeling SDK,即可確保產生的軟體具有模型中的最新變更。撰寫 T4 文字範本
文字範本檔的語法。逐步解說:使用文字範本產生程式碼
示範程式碼產生的一種使用方式。疑難排解 T4 文字範本
對文字範本進行偵錯的方式,以及某些常見的文字範本錯誤。使用 TextTransform 公用程式產生檔案
可用以執行文字範本轉換的命令列工具。自訂 T4 文字轉換
如何為您本身的資料來源撰寫指示詞處理器和自訂範本主機。
資源
T4 開發人員中心 (英文) 收集 T4 的相關範例、秘訣以及常見問題。
請參閱
其他資源
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2011 年 3 月 |
強調執行階段與設計階段範本之間的差異。 |
客戶回函。 |