【问题标题】:In IoC, what is the practice for loading an object by ID?在 IoC 中,通过 ID 加载对象的做法是什么?
【发布时间】:2014-12-27 16:01:20
【问题描述】:

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

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

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

  • 谢谢。

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

【问题讨论】:

    标签: c# inversion-of-control


    【解决方案1】:

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

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

    在你的情况下,你可能需要某种工厂,可以通过参数实现需要什么样的对象调用者。

    但是,我建议您将数据与业务逻辑分开,尽可能多地分开。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多