从我注意到的角度来看,他们做的几乎是同一件事,以IoC / DI的形式提供服务。但是,IAmbientServices
的成员类型为ICompositionContext
。我并没有真正了解两者之间的区别,为什么它们会以这种方式聚合?
答案 0 :(得分:1)
简洁的答案是:ambient services
包含在构建IoC / DI /组成容器之前在中注册的服务,而composition context
是IoC /的根容器DI,它本身就是在ambient services
中注册的服务。
请注意,ambient services
中注册的所有服务随后也会自动在DI容器中注册,包括IAmbientServices
,因此它们也可用于组合。
环境服务示例:
作为一般经验法则,宁愿使用在DI容器中注册的服务,也很少需要环境服务。