我对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;
}
如果有人可以就如何做到这一点提出一些建议,或者如果我以错误的方式看待它,那就太好了:)
非常感谢,
汤姆
答案 0 :(得分:1)
也许该框架只执行具有特定参数的构造函数。
您可以在IBookingService
上设置Freedom2BookTree
属性,并将其分配到构造函数之外。