簡體   English   中英

使用C#運行T4模板

[英]Running a T4 template using C#

我有T4模板(mycode.tt),它生成一個cs文件。 我通常右鍵單擊tt文件並選擇RunCustomTool,它在內部獲取xml文件並為我生成代碼。 現在我想使用ac #windows應用程序運行自定義工具。 因此,只需單擊一個按鈕即可運行自定義工具。 是否可以從c#運行CustomTool。

編輯:

我有2個tt文件,其中一個沒有codebehind cs文件。 但另一個附加了.cs文件,我從第一個.tt文件調用第二個文件的TransformText()方法。 所以我需要調用第一個文件。所以我不能使用TransformText()方法。 有沒有辦法動態調用textTemplate文件?

當您使用VS2010時,您可以輕松實現它。 如果向項目添加新文件,請選擇預處理的文本模板文件。 您可以像平常一樣編輯模板。 該文件不是直接生成輸出,而是生成正常生成的代碼。 我知道這聽起來令人困惑。 但是您在輸出文件中看到的是文本模板工具包生成的代碼,用於獲取輸出(或多或少)。

這是一個名為“TestTemplate.tt”的預處理文本模板的簡短示例,您如何在代碼中使用它:

tt文件:

 <#@ template language="C#" #> Some output. 

碼:

 using System; using System.Diagnostics; namespace Test { class Program { static void Main(string[] args) { TestTemplate testTemplate = new TestTemplate(); Debug.Print(testTemplate.TransformText()); } } } 

我推薦@jb_上面回答的預處理路線。

作為替代方案,如果您需要模板仍然可以編輯而無需編譯步驟以與自定義C#應用程序一起使用,並且應用程序將僅部署在Visual Studio旁邊的計算機上,則可以編寫自定義主機。

http://msdn.microsoft.com/en-us/library/bb126519.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM