问题
I am wondering how do you do constructor inject with ninject 2.0 when you have a base controller?
I have
private readonly IBaseService baseService;
public BaseController(IBaseService baseService)
{
this.baseService = baseService;
}
Bind<IBaseService>().To<BaseService>();
public class OtherController : BaseController
{
private readonly IOtherService otherService;
public OtherController(IOtherService otherService, IBaseService baseService)
{
this.otherService = otherService;
}
Yet I get
'BaseController' does not contain a constructor that takes 0 arguments
回答1:
You need to inject both services into your OtherController
and call the base constructor passing the service it requires:
public OtherController(IOtherService otherService, IBaseService baseService)
: base(baseService) { this.otherService = otherService; }
回答2:
You'd have to chain through to the base controller, no?
public OtherController(IOtherService otherService, IBaseService baseService) : base(baseService)
来源:https://stackoverflow.com/questions/5720806/ninject-with-a-base-controller