我对bootstrapper类有一些疑问。我正在使用ASP.NET MVC 3
。
在MVC3中使用引导程序减少global.asax文件中的代码量是否仍然明智?
除了注册路线之外,还必须在boostrapper中加载什么?如果我想加载站点范围的设置(从数据库加载),我在这里这样做吗?如果是这种情况,那么我需要将这些设置注入每个控制器吗?如果它进入了引导程序,这些值是如何保留的?
我正在寻找有关如何在我的引导程序中使用Autofac的代码/文章。我只能找到Ninject。有人为我买过一些代码或文章吗?
我找到了这两篇好文章:
我正在尝试完成类似的事情:
protected void Application_Start()
{
Bootstrapper.Run();
}
答案 0 :(得分:1)
在MVC3中使用引导程序减少global.asax文件中的代码量是否仍然明智?
我正在使用let说一个引导程序(实际上是以特定顺序执行的各种启动任务)在每个Web应用程序中。我将所有需要设置的任务放入这些任务中:从路径和全局过滤器,到设置DI容器,从db加载设置(在设置DI容器之后)等等。
基本上你可以放在global.asax.cs中的所有内容Application_Startnow都作为Start Up目录中的任务而存在,每个任务都是一个标记为启动任务的简单类(我正在使用自己的工具包)。引导程序的好处是这些任务的简单保留,它与IoC容器没有隐式连接,但是设置容器通常是在应用程序启动时执行的。
如果我想加载站点范围的设置(从数据库加载),我在这里这样做
仅当设置是静态的或配置应用程序时才需要。它几乎取决于设置的类型和应用程序的类型。没有明确的答案。
如果是这种情况,那么我是否需要将这些设置注入每个控制器
您不会在控制器中注入设置,注入依赖项,这就是IoC容器的工作。
如果它进入了引导程序,这些值是如何保留的?
引导程序仅在应用程序启动时使用一次,以配置应用程序然后它就出来了。它不应该保留价值。您可能正在考虑设置,但即使引导程序加载它们,这些设置也会存储在不同的位置,通常是缓存。