Базовый контроллер MVC и Ninject - PullRequest
6 голосов
/ 27 ноября 2010

Я внедряю внедрение зависимостей Ninject в существующее приложение MVC 2, которое использует базовый контроллер, который наследуют все контроллеры, для установки навигации и другой информации, необходимой главной странице.Когда я устанавливаю контроллер для наследования от базового контроллера, я получаю следующую ошибку: «... BaseController» не содержит конструктор, который принимает 0 аргументов. Как мне обойти эту ошибку? Я новичок в Ninject и могу 't понять это.

public class BaseController : Controller
    {
        private INavigationRepository navigationRepository;
        private ISessionService sessionService;


        public BaseController(INavigationRepository navigationRepository, IMembershipService membershipService, ISessionService sessionService)
        {
            this.navigationRepository = navigationRepository;
            this.sessionService = sessionService;
        }
    }


 public class HomeController: BaseController
    { ... }

1 Ответ

6 голосов
/ 27 ноября 2010

Добавление этого значения в один конец

public class HomeController: BaseController
{
    public HomeController(INavigationRepository navigationRepository, IMembershipService membershipService, ISessionService sessionService)
    : base(navigationRepository, membershipService, sessionService) { }

}

или добавление свойства

public class BaseController : Controller
{
    [Inject]
    public INavigationRepository navigationRepository { get; set; }
    [Inject]
    public ISessionService sessionService { get; set; }


}
...