在ASP.NET MVC 3中初始化ObjectFactory的位置

本文关键字:初始化 ObjectFactory 位置 ASP NET MVC | 更新日期: 2023-09-27 18:26:59

我需要在ASP.NET MVC 3应用程序中初始化StructureMap.ObjectFactory

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

我必须用Application_BeginRequest还是Application_Start来做?

在ASP.NET MVC 3中初始化ObjectFactory的位置

作为一般规则,您应该始终在Application_Start事件处理程序中设置IoC容器,因为它只需要在应用程序的生命周期中发生一次

在StructureMap的情况下,文档建议将容器配置代码分离在一个单独的Bootstrapper类中:

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

然后从Application_Start事件处理程序调用:

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