我一直非常高興地使用Ninject
很長一段時間,而且我非常喜歡它,但自ASP.NET 5
和MVC 6
發佈以來,我面臨着一個困難的選擇。微軟公司基本上走出了門戶,透露了自己的依賴注入系統;據我所知,這是一個很多批評。但是我更大的問題在於它如何影響其他圖書館。繼續ASP.NET MVC 6中的Ninject支持?
從another question I asked和other resources online,似乎Ninject不開箱與MVC 6.工作,雖然有一個「解決方案」的詳細庫Microsoft.Framework.DependencyInjection.Ninject and Ninject
的形式給出。這更加棘手,因爲該庫需要將https://www.myget.org/F/aspnetmaster/
添加到您的NuGet訂閱源列表中。
我已經做了一些挖掘並找到了這個庫的託管位置;它看起來很好,它似乎可以從我能說的很好,但有幾件事情讓我感到困擾。
- 庫並沒有真正出現在Ninject創
- 庫埋藏很深的一個不起眼的倉庫領導
- 實際Ninject資源在線別說
所以基本上,我非常擔心這是某種形式的助手,對Ninject(甚至其他容器庫)的支持正在消失。是否有一些隱藏的信息,我只是沒有發現?
感謝有見地的文章,DI容器中內置的主要缺失是沒有基於約定的映射。我必須將每個項目都包含到我的啓動項目中,並映射依賴關係。這似乎是一個巨大的失誤,除非我失去了一些東西。 – Spets
@Spets內置容器特別適用於ASP.NET本身的配置系統。所以這意味着您可以輕鬆地交換部分ASP.NET,並且第三方組件可以使用相同的配置模型。內置容器是圍繞該模型構建的,這就解釋了爲什麼某些功能沒有實現。請注意,批量註冊非常容易將自己寫在容器之上,並且要成爲一個引人注目的DI庫,應首先實施其他更重要的功能。但是,不要濫用DI系統來註冊自己的類型。 – Steven
有道理。 – Spets