【发布时间】:2013-11-26 18:37:41
【问题描述】:
我再次来找你,问一些最佳实践问题。
我正在开始一个新项目,我希望能够正确地对其进行测试,因此我求助于 IoC 和依赖注入。我已经对这个概念有了相当多的了解,但是我想问你一些小细节。
我将使用 3 层应用程序架构
ASP.NET -> BLL -> DAL
第一个问题 我的第一个问题是如何最好地解决依赖关系。将它们注入构造函数中,在我看来,在某些情况下,我将拥有具有大量依赖项的 biiig 构造函数,即使在实际代码路径中我只需要其中的几个。 另外我担心的是实例化我可能需要的所有依赖项,但不会正确地实例化,或者可能需要能够实例化较低的东西(我知道你应该从依赖解析器中获取它)? 所以问题:如何在不浪费资源或使初始化缓慢的情况下注入多个依赖项
第二个问题 依赖项将提供给我的 MVC 应用程序中的许多控制器,在这里间接使用依赖项是明智的,BLL 可能也是如此。但是在 DAL 的深处呢?假设除了其他一些数据提供者之外,我还需要使用 CustomerDataProvider 和 OrderDataProvider。是直接实例化,还是这里再使用依赖注入?
第三个问题 最后一个问题,我如何设法将分片合并到所有这些中?我所有的客户端都将在同一个 WebServer 上运行,但它们都有自己的 DB(分片),我也将有一个 Master DB,你如何在 NInject 中适应这一点?
【问题讨论】:
-
@Steven 感谢您的链接。我想对我的具体问题有更深入的回答。但是你的链接,当然值得一读。
-
至于第三个问题,听起来和IoC无关,而是和实际的数据访问技术有关。
-
@WiktorZychla 不是直接不,而是开箱即用,NInject 中的基本“绑定和解析”,不允许您有条件地更改对象(例如,更改连接字符串)。所以我想知道最好的方法是什么。有人建议将工厂绑定到 IoC 容器,然后在工厂中创建和管理不同的连接。
标签: c# design-patterns dependency-injection ninject