我对 IoC 模式相当陌生,并且在以下设置方式上遇到了问题。
我有一个 Service 类,它具有以下构造函数:
public BookingService(IBookingRepository bookingRepository, IUnitRepository unitRepository, IRateRepository rateRepository, IDiscountRepository discountRepository, IUnitOfWork unitOfWork)
{
this.bookingRepository = bookingRepository;
this.unitRepository = unitRepository;
this.rateRepository = rateRepository;
this.discountRepository = discountRepository;
this.unitOfWork = unitOfWork;
}
现在我可以像这样使用我的控制器了:
private IBookingService _bookingService;
public AdminBookingSurfaceController(IBookingService bookingService)
{
_bookingService = bookingService;
}
我遇到困难的地方是在第三方框架(Umbraco)的继承类中使用 BookingService 时。
这是当前的构造函数:
public class Freedom2BookTree : umbraco.cms.presentation.Trees.BaseTree
{
public Freedom2BookTree(string application)
: base(application)
{
}
我不确定 IoC 将如何使用它,我尝试过这样但它不起作用:
如,当我添加附加参数时,构造函数永远不会被命中/调用
public class Freedom2BookTree : umbraco.cms.presentation.Trees.BaseTree
{
private IBookingService _bookingService;
public Freedom2BookTree(string application, IBookingService bookingService)
: base(application)
{
_bookingService = bookingService;
}
如果有人可以就如何做到这一点提供一些建议,或者如果我以错误的方式看待它,那就太好了:)
非常感谢,
汤姆