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