共用方式為


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

「文字範本轉換」(Text Template Transformation) 流程採用「文字範本」(Text Template) 檔做為輸入,並產生文字檔做為輸出。您可以從 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.11.0.dll 中,而 ITextTemplatingEngineHost 則定義於 Microsoft.VisualStudio.TextTemplating.Interfaces.11.0.dll 中。

本章節內容

參考資料

ITextTemplatingEngineHost

相關章節