希望這個問題不是太愚蠢,我試圖抓住更高級的編程原則,並因此試圖習慣使用Ninject進行依賴注入。依賴注入:如何在使用多項目解決方案時注入
因此,我的模型被分成幾個不同的.dll項目。一個項目定義了模型規範(接口),另外一些則實現了這些接口。所有模型項目都需要使用某種數據庫系統,所以他們都需要訪問另一個實現我所有數據庫邏輯的.dll。儘管如此,如果僅僅爲每個模型創建一個實例,它們都可以訪問我的數據庫對象的同一個實例是非常重要的。
雖然我不太清楚如何使用依賴注入來實現這一點。我的第一個想法是創建一個單獨的DI項目並將所有接口綁定到它們各自的實現,因此DI項目需要引用所有其他項目(模型接口&實現,數據庫系統等)。然後再次,模型需要訪問DI項目,例如,他們需要從DI系統(Ninject)請求數據庫系統。當然,這會創建一個循環引用(綁定DI項目來模擬和建模DI項目),所以這是不可能的。長話短說,我需要一種編程模式,允許我將模型接口綁定到他們的實現,但是這也允許模型實現請求Ninject的其他依賴項,例如,
IModel1 -> Model1
IModel2 -> Model2 (different project)
IDatabase -> Database (different project)
Model1 -> request IDatabase -> get Database instance
Model2 -> request IDatabase -> get the same Database instance
很高興能得到一些建議,現在我堅持和的想法;) 謝謝!
這是一個網站的這是什麼? –