共用方式為


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

更新:2010 年 10 月

「文字範本轉換」(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.10.0.dll 中,而 ITextTemplatingEngineHost 則定義於 Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll 中。

本章節內容

參考資料

ITextTemplatingEngineHost

相關章節

變更記錄

日期

記錄

原因

2010 年 10 月

詳述有關執行緒安全性的注意事項

客戶回函。