2011-11-29 3 views
1

Я пытаюсь настроить шаблон MVC Scaffolding T4 для репозитория, чтобы он создавал привязки Ninject в моем классе App_Start \ NinjectMVC3.cs.Ninject и MVC Scaffolding

Я могу изменить шаблон, чтобы настроить созданный репозиторий, но я немного теряю то, как я могу заставить шаблон добавлять контент в отдельный файл.

Кто-нибудь сделал что-нибудь подобное? Также я думаю, что разделение репозитория и его интерфейса на отдельные файлы было бы удобно.

Благодаря

ответ

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. Есть идеи? – GraemeMiller

+0

@GraemeMiller Вы можете попробовать изменить файл ControllerWithRepository.cs.t4 (сделать резервную копию раньше), помещенный в каталог \ MvcScaffolding.1.0.4.0 в вашем проекте. Вы можете добавить функцию SaveOutput и новый контент. –

Смежные вопросы