BIL*_*ILL 1 .net c# structuremap dependency-injection inversion-of-control
我需要StructureMap.ObjectFactory在ASP.NET MVC 3应用程序中初始化.
ObjectFactory.Initialize(x => x.For<Db>().HttpContextScoped().Use<Db>());
Run Code Online (Sandbox Code Playgroud)
我必须做的Application_BeginRequest还是Application_Start?
作为一般规则,您应始终在Application_Start事件处理程序中设置IoC容器,因为它只需要在应用程序的生命周期内发生一次.
对于StructureMap,文档建议在单独的类中分隔容器配置代码Bootstrapper:
public static class Bootstrapper
{
public static void Bootstrap()
{
// ObjectFactory.Initialize(...
}
}
Run Code Online (Sandbox Code Playgroud)
然后从Application_Start事件处理程序调用:
protected void Application_Start()
{
Bootstrapper.Bootstrap();
}
Run Code Online (Sandbox Code Playgroud)