我在我的项目中经常使用 DI,我对这个概念相当满意,但是有一个方面我不太确定。
所以对我来说一个常见的用例是有一个 ASP.NET MVC 控制器,我在构造函数的参数列表中列出控制器的依赖项,显然这些是在控制器由 DI 容器构造时传入的,然后我将它们分配给只读私有变量稍后由控制器中的操作使用。
现在,我担心的是,如果我只在一个动作中使用注入的依赖项(比如说 an IMemberRepository
)(假设还有 5 个其他动作),我应该将其列为 ctor 中的依赖项,还是应该Container.Resolve<IMemberRepository>()
在一个动作中调用动作用在哪里?
我不得不说,我确实喜欢在 ctor 中列出我的所有依赖项,而且我并不特别喜欢Container.Resolve<>()
散布在我的代码中,但是,继续上面的示例,让 DI 容器实例化IMemberRepository
它是没有意义的要使用的!