1

我已经阅读了很多关于这方面的信息,但我找不到任何最新的信息(截至 2011 年 1 月),关于现在应该如何做到这一点。我已经阅读了一些似乎有答案的好帖子,但没有详细信息。较早的 pre-unity-2 方法主要创建自定义生命周期管理器。现在看来最好的方法是使用在请求开始时创建并在请求结束时处置的子容器,使用容器管理的生命周期。另一个人说他们已经通过createchildcontainer 使用分层生命周期来实现这一点。

我发现的大部分材料都说在我尝试过的 Application_BeginRequest 期间创建子容器。这不起作用,因为我的控制器工厂(来自 MvcContrib 的 IoCControllerFactory)使用在 Application_Start 期间注册的容器(MvcContrib 中 IDependencyResolver 的实现),这是默认/根容器。

我在 web.config 中有我的统一设置,我可以创建子容器,但我似乎无法让任何控制器将它们用于 DI 来为每个请求创建单例。我是否需要创建一个特殊的容器来在控制器工厂中使用,而不是根?它应该是容器管理的还是分层的?我不应该在每个请求上都重新设置 DependencyResolver,不是吗?

4

1 回答 1

1

试试http://mvcuunity.codeplex.com/或下载源代码看看它是如何完成的。

于 2011-01-18T09:50:47.243 回答