我试图了解 CompositionRoot 的含义。
到目前为止,我从未找到关于它是什么的深入描述,只是对不应该做什么的简短陈述。
使用 caliburn.micro 时出现的 Bootstrapper 是否已经意味着“CompositionRoot”?
或者它更接近于 servicelocator 反模式,因为它只能提供程序集内部的任何内容及其依赖项。
如果有人对 CompositionRoot 有很好的描述,请分享。我已经知道 ploeh 博客了。
如果我看到 CompositionRoot 带来更好的架构和/或帮助我解决问题,我仍然愿意购买这本书。但是我知道周围没有足够的信息让我看看它会有什么帮助。
更新
假设我所有的 ViewModel 都注入了 EventAggregator(构造函数注入)。现在我想在需要时动态创建这些 ViewModel。我可以预先注册类型(在 CompositionRoot 中),但以后如何解决依赖关系?据我了解,在组合根之后不应该触及容器。毫无疑问,我不想在需要它们之前创建所有实例(这会使应用程序启动缓慢)。“注册-解决-发布”是这里的意思吗?(这种模式也是在 ploeh 博客中创造的)