1

App_Start \ NinjectMVC3.csクラスにNinjectバインディングを作成するように、リポジトリ用のMVCScaffoldingT4テンプレートをカスタマイズしようとしています。

テンプレートを変更して、作成されるリポジトリをカスタマイズすることはできますが、テンプレートにコンテンツを別のファイルに追加させる方法について少し戸惑っています。

誰かが似たようなことをしましたか?また、リポジトリとそのインターフェイスを別々のファイルに分割すると便利だと思います。

ありがとう

4

1 に答える 1

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メソッドを使用してください。

于 2011-11-29T13:42:50.393 に答える