Ninject with a base controller?

喜欢而已 提交于 2020-01-13 10:18:07

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!