共用方式為


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

「文字範本轉換流程」採用「文字範本」檔案做為輸入,並產生文字檔做為輸出。 您可以從 Visual Studio 擴充功能,或從執行於已安裝 Visual Studio 之電腦的獨立應用程式中,呼叫文字轉換引擎。 不過,您必須提供「文字範本化主應用程式」(Text Templating Host)。 這個類別會將範本連接至環境、尋找資源 (例如組件和 Include 檔),以及處理輸出和錯誤訊息。

提示

如果您要撰寫將執行於 Visual Studio 的封裝或擴充功能,請考慮使用文字範本化服務,而不是撰寫自己的主應用程式。 如需詳細資訊,請參閱在 VS 延伸模組中叫用文字轉換

注意

不建議您在伺服器應用程式中使用文字範本轉換。 除非在單一執行緒中,否則也不建議您使用文字範本轉換。 這是因為文字範本化引擎會重複使用單一 AppDomain 來轉譯、編譯和執行範本。 轉譯過的程式碼並不是安全執行緒。 引擎是專門用來循序處理檔案,就像在設計階段於 Visual Studio 專案中一樣。

針對執行時間應用程式,請考慮使用前置處理過的文字模板:請參閱使用 T4 文字模板產生執行階段文字

如果應用程式使用一組在編譯階段固定不變的範本,則使用「前置處理過的範本」會比較簡單。 如果應用程式是在沒有安裝 Visual Studio 的電腦上執行,您也可以這個處理方法。 如需詳細資訊,請參閱使用 T4 文字範本產生執行階段文字 (部分機器翻譯)。

在應用程式中執行文字範本

若要執行文字範本,可以呼叫 Microsoft.VisualStudio.TextTemplating.Engine 的 ProcessTemplate 方法:

using Microsoft.VisualStudio.TextTemplating;
...
Engine engine = new Engine();
string output = engine.ProcessTemplate(templateString, host);

您的應用程式必須尋找和提供範本,而且必須處理輸出。

host 參數中,必須提供實作 ITextTemplatingEngineHost 的類別。 引擎會回呼這個類別。

主應用程式必須能夠記錄錯誤、解析組件和 Include 檔的參考、提供可在其中執行範本的應用程式定義域,以及為每個指示詞呼叫適當的指示詞處理器。

Microsoft.VisualStudio.TextTemplating.Engine 定義於 Microsoft.VisualStudio.TextTemplating.*.0.dll,且 ITextTemplatingEngineHost 定義於 Microsoft.VisualStudio.TextTemplating.Interfaces.*.0.dll

本節內容

逐步解說:建立自訂文字模板主機示範如何建立自訂文字模板主機,讓文字模板功能可在 Visual Studio 外部使用。

參考

ITextTemplatingEngineHost