0

我是相當新的IoC模式,我已經遇到了一個問題,應該設置以下方式。IoC安裝和問題與繼承類

我已經得到了它具有以下構造服務類:

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) 
    { 
    } 

我不知道國際奧委會將如何處理這方面的工作,我想這樣的,但它沒有工作:

如,當我添加附加參數的構造從來沒有被擊中/被叫

public class Freedom2BookTree : umbraco.cms.presentation.Trees.BaseTree 
{ 
    private IBookingService _bookingService; 
    public Freedom2BookTree(string application, IBookingService bookingService) 
     : base(application) 
    { 
     _bookingService = bookingService; 
    } 

如果有人可以借給這個應該怎麼做,或者如果我看着它在錯誤的道路一些建議,這將極大:)

非常感謝,

湯姆

+0

爲什麼您需要第三方組件內的BookingService? – gustavodidomenico 2013-05-10 18:24:30

+0

對不起,我可能沒有足夠好地解釋自己。 Freedom2BookTree是我自己的類,我只是繼承了第三方類,它需要我調用基礎構造函數。然後我的課程從第三方框架調用。該類所做的是讓我構建自己的節點樹,因此我需要調用BookingService以獲取數據以構建自定義節點樹。希望這個澄清的事情好一點。謝謝:) – Tom 2013-05-10 19:22:48

+0

「它沒有工作」是什麼意思? – flq 2013-05-10 20:10:01

回答

1

也許這只是框架執行與特定參數的構造函數。
您可以將IBookingService設置爲Freedom2BookTree上的一個屬性,並將其指定給構造函數之外。

+0

感謝您的建議BlueChamelon,您是否介意更詳細一點,因爲我不太關注它將如何與IoC綁定......我目前正在使用Ninject。謝謝:) – Tom 2013-05-10 20:46:49

+0

我沒有使用Ninject,但還有其他方法注入依賴比通過構造函數。其中一種方法是使其成爲一種財產。 – BlueChameleon 2013-05-10 20:49:52

+0

umbraco框架如何「瞭解」你的新類(Freedom2BookTree)? – BlueChameleon 2013-05-10 20:50:51