t4mvc: Невозможно наследовать класс контроллера, у которого нет конструктора по умолчанию?

Я использую T4MVC с MVC2.

У меня есть следующие строительные блоки:

  1. Простой интерфейс сущности, который определяет, что каждая сущность POCO должна иметь свойство с длинным идентификатором :

     открытый интерфейс IEntity
     {
      общедоступный длинный идентификатор;
     }
     
  2. Простой класс POCO, который реализует интерфейс IEntity и имеет некоторые строковые свойства:

     открытый класс CD: IEntity
     {
      общедоступный длинный идентификатор {получить;  набор;  }
    
      публичное длинное имя {получить;  набор;  }
     }
     
  3. Базовый контроллер:

     открытый абстрактный класс EntityController : Controller, где T: class, global :: IEntity
     {
      общедоступный EntityController (менеджер IEntityManager );
     }
     
  4. Я использую этот базовый контроллер в моем CDController (где CDManager реализует интерфейс IEntityManager , который является шаблоном UnitOfWork для добавления функциональности CRUD):

     общедоступный частичный класс CDController: EntityController 
     {
      public CDController (): base (новый CDManager ()) {}
     }
     

Когда я запускаю свой шаблон t4, создается следующий код:

namespace MyApp.Web.Controllers {
    public partial class CDController {
        [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
        protected CDController(Dummy d) { }

Но это дает мне ошибку во время компиляции:

MyApp.EntityController не содержит конструктора, который принимает 0 аргументов

Как можно Я решаю эту проблему?

9
задан mskfisher 4 November 2011 в 20:20
поделиться