1

Unityにタイプを登録するのに最適なイベントはどれですか?

これをやりたい

        iocContainer.RegisterType<ControllerA>();
        iocContainer.RegisterType<ControllerB>();

そのため、UnityコンテナからControllerFactoryによって取得できます。

私の意見は、Application_Startイベントでそれを行うことでしたが、アプリプールのリサイクル(Application_startを起動しない)によって引き起こされる多くの問題に直面する可能性があると警告されました。したがって、代替手段はSession_startになります。

何かアドバイス?

[アップデート]

しかし、私が使用する場合

iocContainer.RegisterInstance<IService>(service)

アプリプールのリサイクルまたはIISがリセットされた場合はどうなりますか?サービスのインスタンスは再作成されていますか?

4

2 に答える 2

2

いいえ、Application_startはそれを行うための正しい場所です。


アプリプールまたはIIS(またはサーバーがリサイクルされている)の場合、何も役に立ちません。その後、コンテナー自体がリサイクルされますが、アプリプールが再起動されると、コンテナーは新たに構成されます。

于 2011-05-26T12:20:03.393 に答える
2

PreApplicationStartMethodの方が良いと思います。

これらの記事をチェックしてください:

http://haacked.com/archive/2010/05/16/three-hidden-extensibility-gems-in-asp-net-4.aspx

http://ilearnable.net/2010/11/22/webactivator-preapplicationstartmethod/

于 2011-05-26T14:38:58.017 に答える