繁体   English   中英

MVC 控制器初始化程序被多次调用

[英]MVC Controller initializer is being called many times

问题:

当我加载我的应用程序时试图多次初始化主控制器,我想知道为什么......这让我发疯了,如果我们中的一个人有类似的错误并且想给我关于我必须做的事情的旅行检查,我会同意的!!

MVC3 C# 使用 Unity 作为 IoC

控制器:

    public ValorationController(IServiceProxy serviceProxy, 
                                IHvmService hvmService, 
                                IFamilyGroupService familyGroupService, 
                                IClientService clientService,
                                IUserService userService,
                                IOfficeService delegationService,
                                ISocietyService societyService,
                                IFamilyService familyService,
                                IArticleService articleService,
                                IArticleFinishedService articleFinishedService,
                                IOrderService orderService)
        : base(serviceProxy)
    {
        FamilyService = familyService;
        ArticleService = articleService;
        HvmService = hvmService;
        FamilyGroupService = familyGroupService;
        ClientService = clientService;
        UserService = userService;
        DelegationService = delegationService;
        SocietyService = societyService;
        ArticleFinishedService = articleFinishedService;
        OrderService = orderService;
    } 

您的控制器将在涉及它的每个请求上初始化。

这是正常现象,也是 IIS 的工作原理。

也很高兴知道每个Unity Resolve默认都会创建一个新instance 如果你不想那样,你应该提供一个LifeTimeManager

阅读 Microsoft 的关于“ 了解生命周期管理器”和“使用生命周期管理器”的文章。

也许你想使用这样的东西:

// Register a default (un-named) type mapping with a singleton lifetime 
myContainer.RegisterType<IMyObject, MySingletonObject>(new ContainerControlledLifetimeManager());
// Following code will return a singleton instance of MySingletonObject// Container will take over lifetime management of the object
myContainer.Resolve<IMyObject>();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM