我正在使用幾個T4模板來生成幾個T4文件,並且它們中的大多數共享很多相同的代碼,所以自然我想從中創建一個函數並將其放在一個不同的文件中,以使所有的T4文件可以訪問。是否可以從T4 .tt模板中的其他文件執行代碼以生成代碼?
但是,我似乎無法找到一種方式,或谷歌的方式來實際使用存儲在另一個文件中的代碼。
這可能嗎?如果是這樣,是否有一個簡單的例子來說明如何去做?
我正在使用幾個T4模板來生成幾個T4文件,並且它們中的大多數共享很多相同的代碼,所以自然我想從中創建一個函數並將其放在一個不同的文件中,以使所有的T4文件可以訪問。是否可以從T4 .tt模板中的其他文件執行代碼以生成代碼?
但是,我似乎無法找到一種方式,或谷歌的方式來實際使用存儲在另一個文件中的代碼。
這可能嗎?如果是這樣,是否有一個簡單的例子來說明如何去做?
從你的問題,這聽起來像你只是在你的解決方案中的正常模板文件中使用T4。 在這種情況下,您可以使用<#@ include #>
指令來提取您的共享代碼。它是一種原始的文本包含機制,類似於C/C++的#include
,因此您可以隨意移動或分配到其他文件中。請參閱文檔here。
值得注意的是,目前,include指令在ASP.Net視圖腳手架模板中不起作用。
如果您想與常規C#項目共享代碼,這是可能的,但您需要將共享代碼構建到可引用的程序集中。僅僅使用<#@ include #>
指令直接引入.cs
文件是不可能的,因爲指令不會嵌套在控制或類功能塊內。
您可以使用<#@ assembly #>
指令記錄here來引用包含您的共享代碼的助手程序集。
您能否告訴我們更多的情況,因爲答案取決於您如何使用T4,例如Asp.net查看腳手架與您的解決方案中的基本轉換。 – GarethJ 2013-04-05 22:16:01
@GarethJ t4文件正在SQL中查找ID表並生成一個.cs文件,其中的enums與id talble匹配。感謝您的幫助! =) – Kyle 2013-04-06 04:01:26