當使用依賴注入來提供在構造函數中使用的參數時,有時需要這樣做。這是在Unity(和其他依賴注入容器)中支持的東西,所以當它試圖創建類型的實例時,它可以在構造函數中提供參數作爲參數。在Unity中解析類型時傳遞構造函數參數:最佳做法
我的問題是:這種方法是否可取?
內的接口是不可能指定哪些參數的實現類必須有。通過給Unity指定參數,假定實現類具有這些參數,並且將對未來的實現類進行隱式約束。這些約束無法通過接口傳遞。
那麼,這是如何接口本身指定(在.NET)的缺陷,例如。應該可以指定構造函數簽名嗎?或者由於其他的需要,這個功能(能夠提供構造參數)包含在Unity中嗎?
唯一真正可行的方法(對我來說)似乎是使用一個工廠來創建實現類,並做了工廠依賴注入。
我很感激我的問題在這裏可能不是很清楚,所以我會問它略有不同:什麼是應該做在具有需要參數的構造函數的類的依賴注入的最佳方式?
(我不相信這個問題是主觀的,因爲有可能應該是這種類型的依賴注入的單一設計模式。)
編輯:
我要補充一點,我的主要問題是我可以創建一個新的實現類,它具有額外的構造函數參數(其中構造函數參數不是可以通過統一創建的東西)。
但是,在構造函數需要實例變量的地方,我需要將這些提供給Unity。但是接口沒有指定我需要這些參數,所以如果我創建一個具體的實施具有在構造函數中附加參數的接口? – 2010-01-28 12:10:44