使用Unity.Mvc3和Mvc 3应用程序,我可以按以下方式注册IDummyService:
container.RegisterType<IDummyService, DummyService>(new HierarchicalLifetimeManager());在每个web请求中,都会创建我的IDummyService的一个新实例(如本文章中所解释的),但由于我将Mvc 3升级为Mvc 4,hense Unity.Mvc3升级为Unity.Mvc,因此在所有web请求中都创建和使用了一个实例,直到重新启动应用程序为止。基本上,当使用IDummyService时,HierarchicalLifetimeManager是Mvc 4应用程序中的单例。对我来说,很难相信这是Unity.Mvc中的新行为。
对此有更好的解释吗?
发布于 2015-05-06 03:53:06
Unity.Mvc3和Unity.Mvc由两个不同的组织创建,并具有不同的实现。
Unity.Mvc3为每个web请求创建一个子容器。这与内置的HierarchicalLifetimeManager很好地配合。
Unity.Mvc不创建子容器,而是选择创建一个名为PerRequestLifetimeManager的新LifetimeManager。
https://stackoverflow.com/questions/30028522
复制相似问题