ASP.NET MVC 3 + Unity-инъекция контроллера - PullRequest
1 голос
/ 26 мая 2011

Какое событие лучше всего подходит для регистрации типов в Unity?

Я хочу сделать это

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

чтобы они могли быть получены ControllerFactory из контейнера Unity.

Мое мнение состояло в том, чтобы сделать это в событии Application_Start, но меня предупредили, что я могу столкнуться со многими проблемами, вызванными перезапуском пула приложений (без запуска Application_start). Таким образом, альтернативой будет Session_start.

Любой совет?

[UPDATE]

Но если я использую

iocContainer.RegisterInstance<IService>(service)

что произойдет, если пул приложений перезапустится или IIS будет сброшен? Экземпляр службы был воссоздан?

Ответы [ 2 ]

2 голосов
/ 26 мая 2011

Я думаю, что 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/

2 голосов
/ 26 мая 2011

Нет, Application_start - правильное место для этого.


Ничего не поможет, если пул приложений или IIS (или сервер перезагружен).Затем контейнер будет переработан сам, но когда пул приложений будет перезапущен, контейнер будет настроен заново.

...