在这里,我使用DI框架(Ninject),并且工作正常。但是面临的问题之一是,我有一个带有单个构造函数的基类,该构造函数采用接口的实现。
public class BaseApiController : ApiController
{
readonly IAccessService _accessService;
public BaseApiController(IAccessService accessService)
{
this._accessService = accessService;
}
}
当我从该基类继承到所有其他具有构造函数的控制器时,这些构造函数将实现自己的接口。我收到错误消息“ BaseApiController”不包含带有0个参数的构造函数,好的,我理解这一点。派生类是
public class DiscoverController : BaseApiController
{
readonly IDiscoverService _discoverService;
readonly IAccessService _accessService;
public DiscoverController(IDiscoverService discoverService,IAccessService accessService)
{
_accessService = accessService;
_discoverService = discoverService;
}
}
如果不修改派生类ctor使其采用相似的参数并将该值传递给基本ctor的方法,该如何做到这一点,如果您提出更好的处理方法,我将不胜感激。
尝试修改派生的构造函数以使其将参数传递给基类:
public class DiscoverController : BaseApiController
{
readonly IDiscoverService _discoverService;
readonly IAccessService _accessService;
public DiscoverController(IDiscoverService discoverService,IAccessService accessService) : base(accessService)
{
_discoverService = discoverService;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句