我一直在使用Ninject短的時間不同的實現,我試圖找出如何做一些事情,我在Unity已經做了的app.config/web.config中的條目。Ninject綁定
我敢肯定,這是簡單的,只是還沒有找到實現它的最好方式,當然Ninject沒有周圍最大的文檔。
我想有不同的實現一個接口,在代碼中沒有改變 - 具體應用知道使用哪種實現。
例如,當我用統一,我將有一個活的應用程序和一個單元測試庫中,使用不同的數據庫。所以:
var repo = IoC.Get<IRepository>();
會回到我住的應用程序一個RealRepository
和FakeRepository
在我的單元測試。我只是簡單地將這些類映射到我的app.config或web.config中。
在Ninject中,由於您在代碼中定義了映射,似乎沒有辦法決定使用哪個實現(或哪個模塊),除了代碼中 - 但當然,整個目的是我不想特別說明我想要使用哪個實現。
有沒有很好的方法來做到這一點?我能想到的唯一方法就是從配置文件中動態選擇NinjectModule實現,但這樣做感覺不對。
直接從馬的嘴巴。 :) 好答案;我忽略了詳細說明'IoC.Get()'暗示的誤用。 –
你是對的 - 當我在配置文件中使用Unity時,它可以讓我完全避免依賴注入,只是將它用作定位器。你讓我在自己腦海中做了180分鐘,以考慮正確使用DI。謝謝。 –