Unity.Mvc3 对比 Unity.Mvc
Unity.Mvc3 vs Unity.Mvc
将 Unity.Mvc3 与 Mvc 3 应用程序一起使用,我可以按如下方式注册我的 IDummyService
:
container.RegisterType<IDummyService, DummyService>(new HierarchicalLifetimeManager());
在每个 Web 请求中,都会创建我的 IDummyService
的一个新实例(如本 article 中所述),但是自从我将 Mvc 3 升级到 Mvc 4 和 hense Unity.Mvc从 3 到 Unity.Mvc,将创建单个实例并将其用于所有 Web 请求,直到重新启动应用程序。基本上,当使用 HierarchicalLifetimeManager
时,IDummyService
是 Mvc 4 应用程序中的单例。对我来说,很难相信这是 Unity.Mvc.
中的新行为
对此有更好的解释吗?
Unity.Mvc3 and Unity.Mvc 由两个不同的组织创建并具有不同的实现。
Unity.Mvc3 为每个 Web 请求创建一个子容器。这适用于内置 HierarchicalLifetimeManager
。
Unity.Mvc 没有创建子容器,而是选择创建一个名为 PerRequestLifetimeManager
的新 LifetimeManager。
将 Unity.Mvc3 与 Mvc 3 应用程序一起使用,我可以按如下方式注册我的 IDummyService
:
container.RegisterType<IDummyService, DummyService>(new HierarchicalLifetimeManager());
在每个 Web 请求中,都会创建我的 IDummyService
的一个新实例(如本 article 中所述),但是自从我将 Mvc 3 升级到 Mvc 4 和 hense Unity.Mvc从 3 到 Unity.Mvc,将创建单个实例并将其用于所有 Web 请求,直到重新启动应用程序。基本上,当使用 HierarchicalLifetimeManager
时,IDummyService
是 Mvc 4 应用程序中的单例。对我来说,很难相信这是 Unity.Mvc.
对此有更好的解释吗?
Unity.Mvc3 and Unity.Mvc 由两个不同的组织创建并具有不同的实现。
Unity.Mvc3 为每个 Web 请求创建一个子容器。这适用于内置 HierarchicalLifetimeManager
。
Unity.Mvc 没有创建子容器,而是选择创建一个名为 PerRequestLifetimeManager
的新 LifetimeManager。