【问题标题】:Ninject and MVC ScaffoldingNinject 和 MVC 脚手架
【发布时间】:2011-11-29 12:54:02
【问题描述】:

我正在尝试为 Repository 自定义 MVC Scaffolding T4 模板,以便它在我的 App_Start\NinjectMVC3.cs 类中创建 Ninject 绑定。

我可以更改模板以自定义创建的存储库,但对于如何使模板将内容添加到单独的文件中,我有点茫然。

有人做过类似的事情吗?另外我想将存储库及其接口拆分为单独的文件会很方便。

谢谢

【问题讨论】:

    标签: asp.net-mvc ninject t4 asp.net-mvc-scaffolding


    【解决方案1】:

    如果您需要创建与原始 T4 模板不同的类文件,我认为最好为此创建一个新模板。如果要将文件保存在模板中,可以使用 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 脚手架模板搭建存储库的一部分。有什么想法吗?
    • @GraemeMiller 您可以尝试修改您项目中packages\MvcScaffolding.1.0.4.0 目录下的ControllerWithRepository.cs.t4 文件(之前进行备份)。您可以添加 SaveOutput 函数和您的新内容。
    猜你喜欢
    • 2011-10-23
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 2011-08-07
    • 2011-06-25
    相关资源
    最近更新 更多