Где инициализировать ObjectFactory в ASP.NET MVC 3? - PullRequest
1 голос
/ 05 марта 2012

Мне нужно инициализировать StructureMap.ObjectFactory в приложении ASP.NET MVC 3.

ObjectFactory.Initialize(x => x.For<Db>().HttpContextScoped().Use<Db>());

Должен ли я сделать это в Application_BeginRequest или Application_Start?

1 Ответ

5 голосов
/ 05 марта 2012

Как правило, вы всегда должны настраивать свой контейнер IoC в обработчике событий Application_Start, поскольку это должно происходить только один раз в течение времени жизни приложения.

В случае StructureMap документация рекомендует выделить код конфигурации контейнера в отдельный Bootstrapper класс:

public static class Bootstrapper
{
    public static void Bootstrap()
    {
        // ObjectFactory.Initialize(...
    }
}

, который вы затем вызываете из обработчика события Application_Start:

protected void Application_Start()
{
    Bootstrapper.Bootstrap();
}
...