我将在一个由经验较少的开发人员组成的项目中使用它,因此像 Spring.NET 这样的复杂框架不是一个选择。我在想:
- Ninject
- 温莎城堡
- 结构图
哪个会提供适度的学习曲线而不失去灵活性?
另一个问题 - 放置配置的正确位置在哪里?由于 3 层 ASP.NET 应用程序上的内核/配置(不是 MVC!!!所有示例都使用 MVC :))
正确使用 DI 的好处在于,您可以推迟决定使用哪个 DI 容器,直到最后负责任的时刻。在应用程序架构术语中,这对应于所谓的成分根,这是将所有依赖关系连接在一起的地方。这是通常是应用程序的入口点 https://stackoverflow.com/questions/1410719/design-where-should-objects-be-registered-when-using-windsor/1410738#1410738.
除了组合根之外,整个应用程序都可以在不引用任何特定 DI 容器的情况下编写。你只需要遵循众所周知的模式和原则 https://stackoverflow.com/questions/2045904/dependency-inject-di-friendly-library/2047657#2047657.
在选择 DI 容器时,我知道以下适用于 .NET 的 DI 容器:
- 温莎城堡 http://castleproject.org/container/index.html
- 结构图 http://structuremap.sourceforge.net/Default.htm
- Unity http://unity.codeplex.com/
- Autofac http://code.google.com/p/autofac/
- Ninject http://ninject.org/
- Spring.NET http://springframework.net/
就我个人而言,到目前为止,我对温莎城堡感到满意,但我尚未获得所有这些容器的丰富经验。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)