Unity.Mvc3与Unity.Mvc

时间:2015-05-04 11:04:28

标签: asp.net-mvc asp.net-mvc-3 unity-container

将Unity.Mvc3与Mvc 3应用程序一起使用,我可以注册我的container.RegisterType<IDummyService, DummyService>(new HierarchicalLifetimeManager()); ,如下所示:

IDummyService

在每个Web请求上,创建了我的IDummyService的新实例(如此article中所述),但自从我将Mvc 3升级到Mvc 4并将Unity.Mvc3升级到Unity.Mvc ,创建单个实例并在所有Web请求中使用,直到重新启动应用程序。基本上,使用HierarchicalLifetimeManager时,{{1}}是Mvc 4应用程序中的单例。对我来说,很难相信这是Unity.Mvc中的新行为。

对此有更好的解释吗?

1 个答案:

答案 0 :(得分:5)

Unity.Mvc3Unity.Mvc由两个不同的组织创建,具有不同的实现。

Unity.Mvc3为每个Web请求创建一个子容器。这适用于内置HierarchicalLifetimeManager

Unity.Mvc不会创建子容器,而是选择创建一个名为PerRequestLifetimeManager的新LifetimeManager。