2011-11-29 91 views
1

我正在嘗試爲存儲庫自定義MVC腳手架T4模板,以便它在我的App_Start \ NinjectMVC3.cs類中創建Ninject綁定。Ninject和MVC腳手架

我可以更改模板來自定義創建的存儲庫,但我對如何導致模板將內容添加到單獨的文件存在一些損失。

任何人都做過類似的事情嗎?另外我猜想將知識庫及其接口分成單獨的文件將會很方便。

感謝

回答

1

如果您需要創建從原來的T4模板不同的類文件,我認爲這是更好,如果你爲此創建一個新的模板。如果您想將文件保存在一個tempalte,您可以使用Syste.IO庫中創建文件:

<#@ import namespace=「System.IO」 #> 

<#+ 
    void SaveOutput(string outputFileName) 
    { 
     string templateDirectory = Path.GetDirectoryName(Host.TemplateFile); 
     string outputFilePath = Path.Combine(templateDirectory, outputFileName); 
     File.WriteAllText(outputFilePath, GetMyContent()); 
    } 
#> 
<#+ 
    string GetMyContent() 
    { 
     // clean the environment 
     this.GenerationEnvironment.Remove(0, this.GenerationEnvironment.Length); 
     #> 
     This is my content 
     <#+ 
     // return new content 
     return this.GenerationEnvironment.ToString(); 
    } 
#> 

你需要你的下發展到GetMyContent()填充正確的內容輸出文件。在這個例子中,GetMyContent每次都會清理環境,因此請記住在創建所有其他文件後使用SaveOutput方法。

+0

這應該有助於分割存儲庫文件。我還想將代碼添加到現有的類文件中,作爲使用MVC Scaffolding模板構建存儲庫的一部分。那裏有任何想法? – GraemeMiller

+0

@GraemeMiller您可以嘗試修改ControllerWithRepository.cs.t4文件(之前創建備份副本),將其放在項目的packages \ MvcScaffolding.1.0.4.0目錄下。您可以添加SaveOutput功能和新內容。 –