在 IoC 中,按 ID 加载对象的做法是什么?

本文关键字:是什么 对象 加载 IoC ID | 更新日期: 2023-09-27 18:35:28

我刚刚开始学习 IoC,我了解它的一般用途,但到目前为止,AutoFac、Ninject 和 Zenject 的加载过程似乎是基于加载对象而不是基于数据。

换句话说,ConsoleLogger是在请求ILogger时创建的,它不需要任何特殊的ID,这是有道理的。 但是,当我想为 Id 4 加载 IUser 时呢? 是否有用于处理该问题的标准 IoC,或者接口是否应该携带基于 Id 的加载方法?

例如,我是否应该使用IUserManager,使用LoadUser(int id)作为方法? 或者是否有一些 IoC 结构?

  • 谢谢。

[注意:我确实在网上搜索了这个,但我的查询似乎没有提取相关信息,类似的问题搜索产生了太多的通用问题需要过滤]

在 IoC 中,按 ID 加载对象的做法是什么?

IoC

容器通过依赖关系来控制我们链接对象的方式,依赖关系意味着 Iterfaces 下的一些逻辑,因此 IoC 主要在类型级别而不是实例级别工作。

请注意,没有任何依赖关系、接口和特殊范围要求的类型可以通过使用"new"关键字(例如数据传输对象 (dto))合法创建。

在您的情况下,您可能需要某种工厂,该工厂可以通过参数实现需要哪种对象调用器。

但是,我建议您将数据与业务逻辑分开,因为它可以分开。