Kephas中的AmbientServices和CompositionContext有什么区别



据我所知,它们做几乎相同的事情,以IoC/DI的形式提供服务。但是,IAmbientServices具有类型 ICompositionContext 的成员。我真的不明白他们两个之间的区别,为什么他们以这种方式聚合?

简洁的答案是:ambient services包含在构建 IoC/DI/组合容器之前注册的服务,而composition context是 IoC/DI 的根容器,本身是注册到 ambient services 中的服务。

作为旁注,在ambient services中注册的所有服务稍后也会在 DI 容器中自动注册,包括 IAmbientServices ,因此它们也可用于组合。

环境服务示例:

  • 日志管理器:记录器的提供程序。
  • 类型
  • 加载器:从程序集加载类型。
  • 配置
  • 存储:提供主要配置设置。

作为一般经验法则,首选使用在 DI 容器中注册的服务,您将很少需要环境服务。

相关内容

  • 没有找到相关文章

最新更新