1
我正在尝试为存储库自定义MVC脚手架T4模板,以便它在我的App_Start \ NinjectMVC3.cs类中创建Ninject绑定。Ninject和MVC脚手架
我可以更改模板来自定义创建的存储库,但我对如何导致模板将内容添加到单独的文件存在一些损失。
任何人都做过类似的事情吗?另外我猜想将知识库及其接口分成单独的文件将会很方便。
感谢
我正在尝试为存储库自定义MVC脚手架T4模板,以便它在我的App_Start \ NinjectMVC3.cs类中创建Ninject绑定。Ninject和MVC脚手架
我可以更改模板来自定义创建的存储库,但我对如何导致模板将内容添加到单独的文件存在一些损失。
任何人都做过类似的事情吗?另外我猜想将知识库及其接口分成单独的文件将会很方便。
感谢
如果您需要创建从原来的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方法。
这应该有助于分割存储库文件。我还想将代码添加到现有的类文件中,作为使用MVC Scaffolding模板构建存储库的一部分。那里有任何想法? – GraemeMiller
@GraemeMiller您可以尝试修改ControllerWithRepository.cs.t4文件(之前创建备份副本),将其放在项目的packages \ MvcScaffolding.1.0.4.0目录下。您可以添加SaveOutput功能和新内容。 –