文字範本轉換程序會以文字範本檔案作為輸入,並產生文字檔案作為輸出。 您可以從 Visual Studio 延伸模組呼叫文字轉換引擎,或從安裝 Visual Studio 的電腦上執行的獨立應用程式呼叫文字轉換引擎。 不過,您必須提供 文字模板主機。 這個類別會將範本連線到環境,尋找資源,例如元件和包含檔案,以及處理輸出和錯誤訊息。
小提示
如果您要撰寫將在 Visual Studio 中執行的套件或延伸模組,請考慮使用文字範本服務,而不是撰寫您自己的主機。 如需詳細資訊,請參閱 在 VS 延伸模組中叫用文字轉換。
備註
我們不建議在伺服器應用程式中使用文字範本轉換。 我們不建議使用文字範本轉換,除非在單一執行程中。 這是因為文字範本引擎會重複使用單一 AppDomain 來翻譯、編譯及執行範本。 翻譯的程式碼並非設計為執行緒安全。 引擎的設計目的是要循序處理檔案,因為它們在設計階段位於 Visual Studio 專案中。
對於執行階段應用程式,請考慮使用預先處理的文字範本,詳情請參閱 T4 文字範本的執行階段文字產生。
如果您的應用程式使用一組在編譯階段固定的範本,則使用預先處理的文字範本會更容易。 如果您的應用程式將在未安裝 Visual Studio 的電腦上執行,您也可以使用該方法。 如需詳細資訊,請參閱 T4 文字範本與執行階段文字生成。
在應用程式中執行文字範本
若要執行文字範本,請呼叫 ProcessTemplate 方法 Microsoft.VisualStudio.TextTemplating.Engine:
using Microsoft.VisualStudio.TextTemplating;
...
Engine engine = new Engine();
string output = engine.ProcessTemplate(templateString, host);
您的應用程式必須尋找並提供範本,而且必須處理輸出。
在參數中 host ,您必須提供實作 ITextTemplatingEngineHost 的類別。 這會由引擎回調。
主機必須能夠記錄錯誤,解析對元件和包括檔案的參考,提供範本可以執行的應用程式域,並呼叫每個指令的適當處理器。
Microsoft.VisualStudio.TextTemplating.Engine 定義在 Microsoft.VisualStudio.TextTemplating.*.0.dll中, 而 ITextTemplatingEngineHost 定義在 Microsoft.VisualStudio.TextTemplating.Interfaces.*.0.dll中。
本節中
逐步解說:建立自訂文字範本主機 示範 如何建立自訂文字範本主機,讓文字範本功能在 Visual Studio 外部可用。
Reference
相關內容
- 文字範本轉換程序說明 文字轉換的運作方式,以及您可以自訂哪些部分。
- 建立自訂 T4 文字範本指令處理器提供文字範本指令處理器的概觀。