Asp.net-Mvc-3

如何選擇DI容器?

  • April 10, 2017

可能重複:

主要的 C# DI/IoC 框架如何比較?

有這麼多 DI 容器,我感覺有點失落。我是 DI 模式的新手。

我正在閱讀.NET 中的依賴注入一書,我發現 DI 在改程序式碼庫、使其鬆散耦合和更易測試方面非常有用。

我現在想為我的虛擬項目引入一個 DI 容器,但可供選擇的實在太多了。

我應該如何在 Castle Windsor、Unity、StructureMap、Spring.NET、Autofac、Ninject、Funq、LinFu 等之間進行選擇?

我想一個連貫的做法是“只選擇一個”並開始使用它(因為我認為它們很容易互換,特別是在早期階段),但我想做出更明智的決定。

這就像買車一樣。您可能喜歡豐田,但它只是 2.5 升發動機。你可能喜歡法拉利,但它太紅了。你可能喜歡馬自達,但你的老闆不允許你開它。你可能喜歡悍馬,但你的同事會嘲笑你。根據您的口味混合製造商,總會有人或在某個不同的時刻缺少一些東西。

我的看法是——首先,DI 通常比沒有 DI 更好。選擇任何東西,你會過得更好。我會選擇一些東西:

  • 在社區有很好的支持(所以你可以得到答案)
  • 有一個很好的支持公司(所以當它破產時你不會重寫你的程式碼)
  • 感覺很好(所以你不要在孩子麵前發誓,不酷)
  • 對項目來說不是矯枉過正
  • 不只是 DI,而是提供了一個事物的生態系統,可以減少你花在你知道你可以做的任務上的時間,只是不是現在——然後你可以專注於重要的事情
  • 被很多人使用(所以你知道很多部分也在現實生活中進行了測試並填充了錯誤)
  • 不是 5 歲(比如那個文件說它在 Windows 98 上受支持)

我的 2 美分 - http://www.springframework.net/。我的意思是,他們的文件內容頁面有 20 頁長……

或者您可能只想查看類似問題的更多答案:

引用自:https://stackoverflow.com/questions/9440180