Ninject 和 MVC 脚手架

发布于 2024-12-18 16:42:46 字数 192 浏览 1 评论 0原文

我正在尝试为存储库自定义 MVC 脚手架 T4 模板,以便它在我的 App_Start\NinjectMVC3.cs 类中创建 Ninject 绑定。

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

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

谢谢

I am trying to customise MVC Scaffolding T4 template for Repository so that it creates Ninject bindings in my App_Start\NinjectMVC3.cs class.

I can change the template to customise the repository that is created but I am at a bit of a loss as to how I can causes the template to add content to a separate file.

Anyone done anything similar? Also I guess splitting the repository and its interface into seperate files would be handy.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沙沙粒小 2024-12-25 16:42:46

如果您需要创建与原始 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 方法。

If you need to create a different class file from the original T4 template, I think it's better if you create a new template for this purpose. If you want to save a file in a tempalte, you can create the file using Syste.IO library :

<#@ 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(); 
  }
#>

You need to develope your GetMyContent() to fill the output file with the correct content. In this example GetMyContent cleans the environment every time, so remember to use the SaveOutput method after all the other files are created.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文