IoC设置和继承类的问题

本文关键字:问题 继承 设置 IoC | 更新日期: 2023-09-27 18:13:08

我对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;
    }

如果有人能就如何做到这一点提供一些建议,或者如果我以错误的方式看待它,那就太好了:)

许多谢谢,

汤姆

IoC设置和继承类的问题

可能该框架只执行带有特定参数的构造函数。
您可以在Freedom2BookTree上创建IBookingService属性,并在构造函数外部分配它。