共用方式為


使用自訂主機處理文字範本

文字範本轉換程序會以文字範本檔案作為輸入,並產生文字檔案作為輸出。 您可以從 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

ITextTemplatingEngineHost