首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET MVC:统一与HierarchicalLifeTimemanager

ASP.NET MVC:统一与HierarchicalLifeTimemanager
EN

Stack Overflow用户
提问于 2015-09-21 11:58:17
回答 1查看 1.4K关注 0票数 0

我有一个简单的asp.net mvc应用程序。我增加了这个项目的统一性,并测试了不同的终身管理人员。我知道HierarchicalLifitemeManager类似于ContainerControlledLifetimeManager (singletone),但是统一为每个子统一容器创建了不同的实例。我创建了具有单个Guid属性的类,该属性在构造函数中设置,使用HierarchicalLifitemeManager在控制器中注入该类,并在视图中显示这个Guid。每次我按F5键,我都会看到新的Guid。HierarchicalLifitemeManager是如何工作的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-22 03:42:56

效果很好。您可以看到不同的Guid,因为您为每个请求(F5)创建了新的根容器。试着这样做:

代码语言:javascript
复制
class HierarchicalService
{
    public Guid Value {get;set;}
    public HierarchicaService()
    {
        Value = Guid.Guid.NewGuid();
    }
}

register it:
...
container.RegisterType<HierarchicalService>(new HierarchicalLifitemeManager());
...

class MyController
{
    MyController(HierarchicalService serviceA, HierarchicalService serviceB)
    {
        //...compare values from both services
    }
}

And compare it with this:

class MyController
{
    MyController(IUnityContainer container)
    {
        var serviceA = container.CreateChildContainer().Resolve<HierarchicalService>();
        var serviceB = container.CreateChildContainer().Resolve<HierarchicalService>();
        //...compare values from both services
    }
}

因此,如果您有一个根容器,并且需要通过创建具有独立作用域的新子容器(例如,UnitOfWorks)来分离某些操作,则会出现差异。阅读更多关于儿童容器的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32694656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档