1

我在 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 能以某种方式帮助解决这个问题吗?

4

1 回答 1

1

但是调用应该驻留在 WPF 应用程序中的什么位置呢?此外,Caliburn 能以某种方式帮助解决这个问题吗?

实际上,Caliburn.Micro 会为您处理这部分,因为当您从现有的BootstrapperBaseor派生引导程序时Bootstrapper<TRootModel>,这些引导程序会调用一个名为的方法,该方法Start()会启动一系列活动,这些活动构成了您的应用程序的整个对象图,TRootModel或者您需要的任何内容DisplayRootViewFor(Type viewModelType)

于 2013-10-01T12:54:52.743 回答