我应该使用嵌套容器在依赖项的一组值上分叉一组服务吗?

Should I use nested Containers to fork a set of services over a set of values for a dependency?

情况是这样的:

我有一个应用一直在使用 DI。

它有 50 多个顶级 classes 管理应用程序并调用 "uploader" 部分”,其中涉及 20-30 classes。

我的问题是我想基本上分叉上传部分,并且 运行 每个 "CharacterizationUnit" 一个上传任务,我从数据库中读取了一个未知数量(少于五个)。几乎所有的方法都需要访问它们正在操作的 CharacterizationUnit,所以我将它传递给几乎所有方法,这看起来很愚蠢。

在我看来,在每个 CharacterizationUnit 的上传过程中包含每个 class 的实例会更好,这样他们就可以将其引用作为成员变量来避免传递它周围。

这看起来像是我想为每个 CharacterizationUnit 添加一个嵌套容器,以便我可以注册它并将其注入到我的所有上传器服务中的情况吗?一件烦人的事情是,我必须通过我的根容器的大部分注册才能在 child..

中访问它们

我是否缺少 simpler/more 明智的方法,例如以某种方式将这些服务范围界定在一起?

在创建范围并将它们一起确定范围方面,我不确定的主要事情是弄清楚如何将 CharacterizationUnit 与范围相关联。

我也可以注册一大堆工厂来将 CharacterizationUnits 映射到相应的服务,但是让 20-30 个工厂几乎通过每个 classes 依赖项似乎真的很烦人。

我正在使用 SimpleInjector 和 C#。

我认为答案是我应该让每个单元都有自己的流程。我还没有实施,但似乎最有意义..