Dependency injection DI和存储库的引导何时变得荒谬?

Dependency injection DI和存储库的引导何时变得荒谬?,dependency-injection,inversion-of-control,Dependency Injection,Inversion Of Control,我对DI和存储库模式是相当陌生的,我忍不住觉得我遗漏了一些基本的东西。我正在处理一个Azure Worker角色,它与三个不同的数据源Azure table storage、Visual Studio Online REST和SharePoint/O365进行通信,每个Worker角色消息最终都会调用大约24个不同的表、SharePoint列表和VSO API 我使用存储库模式来抽象出这个项目中不稳定的方面,即Azure存储和SharePoint CSOM调用。它基本上建议为每个DAO创建一个I

我对DI和存储库模式是相当陌生的,我忍不住觉得我遗漏了一些基本的东西。我正在处理一个Azure Worker角色,它与三个不同的数据源Azure table storage、Visual Studio Online REST和SharePoint/O365进行通信,每个Worker角色消息最终都会调用大约24个不同的表、SharePoint列表和VSO API


我使用存储库模式来抽象出这个项目中不稳定的方面,即Azure存储和SharePoint CSOM调用。它基本上建议为每个DAO创建一个ITypeRepository


看看我是如何使用SimpleInput引导IoC容器的,但我怀疑我在任何IoC框架中都会遇到这个问题,我正在注册近24个容器/服务/实现,不管正确的术语是什么。由于worker角色最终会在每次调用中使用这些对象类型中的每一种,因此这不像MVC控制器,在MVC控制器中,DI只注入几个dao。我想知道我是否陷入了一种反模式,或者对于非常复杂的顺序方法来说,有一个非常长的IoC引导过程是正常的吗?

它基本上建议为每个DAO创建一个ITypeRepository。。我认为这是一个糟糕的建议,因为它会导致严重违反原则。看一看。它讨论了为什么使用ITypeRepository抽象违反了SOLID,以及更好的设计是什么样子。谢谢Steven,这非常有帮助。