开发者

MVC Base Controller and Ninject

I am implementing Ninject dependency injection in an existing MVC 2 application that uses a base controller that all controllers inherit to set navigation and other information needed by the master page. When I set a controller to inherit from the b开发者_高级运维ase controller, I get the following error: "...BaseController' does not contain a constructor that takes 0 arguments. How do I get around this error? I am new to Ninject and can't figure this out.

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
    { ... }


Adding that ctor is one way

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

}

or property injection

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


}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜