1

問題:

アプリケーションを読み込んでいるときに、メインコントローラーを何度も初期化しようとしていますが、その理由を知りたいのですが...それは私を夢中にさせています。確認してください、同意します!!。

Unity を IoC として使用する MVC3 C#

コントローラ:

    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;
    } 
4

2 に答える 2

2

コントローラーは、それに関連するすべてのリクエストで初期化されます。

これは正常な動作であり、IIS のしくみです。

于 2012-11-14T16:08:31.963 に答える
0

また、everyUnity 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>();
于 2012-11-15T10:19:58.320 に答える