1

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

4

1 回答 1

1

简洁的答案是:在构建 IoC/DI/composition 容器之前ambient services注册的包含服务,而是 IoC/DI 的根容器,并且本身是注册到.composition contextambient services

附带说明一下,在 中注册的所有服务ambient services稍后也会在 DI 容器中自动注册,包括IAmbientServices,因此它们也可用于组合。

环境服务示例:

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

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

于 2019-03-31T18:07:05.193 回答