我已经阅读了很多有关此信息的信息,但是我找不到有关当今应如何完成的目前(从1/2011开始)。我读了几篇好帖子,这些帖子似乎有答案,没有细节。较旧的前2方法大多创建了自定义寿命经理。现在看来最好的方法是 使用在请求开头创建的子容器,并在请求结束时使用容器管理的寿命. 。另一个人说他们已经用 分层寿命与CreateChildContainer.

我发现的大多数材料都说是在Application_BeginRequest期间创建子容器的大多数材料,这是我尝试的。这是不起作用的,因为我的控制器工厂(来自MVCCONTRIB的IocControllerFactory)使用了在Application_start(MVCCONTRIB中IDEPENDencyResolver的实现)期间注册的容器,这是默认/根容器。

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

有帮助吗?

解决方案

尝试 http://mvcunity.codeplex.com/ 或下载源代码以查看如何完成。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top