我在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可以帮助以某种方式完成这个问题吗?
答案 0 :(得分:1)
但是调用应该驻留在WPF应用程序中的哪个位置?此外,Caliburn可以帮助以某种方式完成这个问题吗?
实际上Caliburn.Micro会为你处理这个部分,因为当你从现有的BootstrapperBase
或Bootstrapper<TRootModel>
派生你的引导程序时,那些引导程序会调用一个名为Start()
的方法来启动一个序列以TRootModel
或您为DisplayRootViewFor(Type viewModelType)
开头的任何内容组成应用程序的整个对象图的活动。