我有一個DSL模型和多個T4模板,可以生成對應於模型的代碼。我想要做的是所有模板都在保存模型後執行。每個模板創建多個輸出文件。我從理論上知道如何爲將處理模板並返回生成的代碼的模型創建自定義工具。但是我怎樣才能處理多個模板,因爲IVsSingleFileGenerator接口返回一個生成的文件。使用自定義工具處理多個T4模板
我想到的一種方法是創建一個「主」T4,使用應該處理的模板中的公共方法。但是之後,我必須在每個模板中寫入數百個「Write()」調用的醜陋方法,因爲在「<#+」內部,不可能像模板的其餘部分那樣編寫純文本。或者我可以創建一個包含要生成的所有文件的代碼的巨大模板。但我覺得這很醜陋,很混亂。
或者有沒有辦法以某種方式實例化T4模板,並讓它自己處理和創建文件?我只知道如何實例化模板,以便它可以被處理,但我只得到生成的代碼,我必須處理自己。