在WPF应用程序中使用IoC解决依赖关系的地方在哪里?

时间:2013-10-01 06:57:25

标签: wpf mvvm ioc-container caliburn.micro

我在Mark Seemann的“.NET中的依赖注入”中读到,必须有一个地方(每个)必须调用Register,Resolve和Release。现在,我正在尝试建立一个新的WPF项目的环境。我们的团队决定使用Caliburn.Micro作为MVVM框架,MEF作为IoC。 所以,我清楚地知道必须调用Register的位置,但是Resolve呢? 我也读过这本书,在ASP.NET MVC应用程序中,有一个地方需要调用Resolve:

override IController GetControllerInstance(RequestContext requestContext,
                                           Type controllerType) {
    return (IController)this.container.Resolve(controllerType);
}

但是调用应该驻留在WPF应用程序中的哪个位置?此外,Caliburn可以帮助以某种方式完成这个问题吗?

1 个答案:

答案 0 :(得分:1)

  

但是调用应该驻留在WPF应用程序中的哪个位置?此外,Caliburn可以帮助以某种方式完成这个问题吗?

实际上Caliburn.Micro会为你处理这个部分,因为当你从现有的BootstrapperBaseBootstrapper<TRootModel>派生你的引导程序时,那些引导程序会调用一个名为Start()的方法来启动一个序列以TRootModel或您为DisplayRootViewFor(Type viewModelType)开头的任何内容组成应用程序的整个对象图的活动。