我是一個DI新手,所以請原諒我,如果這是一個錯誤的方法或一個愚蠢的問題。我應該如何訂購DI/IOC的ctor參數?
比方說,我有一個創建/更新訂單的表單,我知道它需要檢索要顯示的產品和客戶列表。我想傳遞它正在編輯的Order對象,但我也想注入ProductsService和CustomersService作爲依賴關係。
所以我會希望我的IoC容器(無論哪一個去)提供服務,但它將由調用代碼提供Order對象進行編輯。
我應該聲明構造爲接受定單對象作爲第一個參數,之後的系列技術CustomersService,如:
public OrderForm(Order order, ProductsService prodsSvc, CustomersService custsSvc)
...還是應該依賴於最後來到第一和訂單對象,例如:
public OrderForm(ProductsService prodsSvc, CustomersService custsSvc, Order order)
重要嗎?它取決於我使用哪個IoC容器?或者,還有更好的方法?
好的,這是有道理的。因此,無論是對所有依賴關係使用屬性注入,還是僅將依賴關係傳遞給ctor,併爲「必要」對象引入屬性? – 2008-10-01 05:22:15
是的,你是對的。不要混用DP和普通屬性,因爲它可能導致不可預知的問題,並限制合適的IoC框架的範圍。 – aku 2008-10-01 05:27:22