2012-03-12 4 views
2

У меня есть некоторые вопросы относительно класса bootstrapper. Я использую ASP.NET MVC 3.ASP.NET MVC3 Bootstrapper с Autofac

По-прежнему разумно использовать загрузчик в MVC3 для уменьшения количества кода в файле global.asax?

Что именно должно быть загружено в ускоритель помимо регистрации маршрутов? Если я хочу загрузить настройки сайта (загруженные из базы данных), могу ли я сделать это здесь? Если это так, то нужно ли вводить эти настройки в каждый контроллер? Как получить эти значения в загрузчике, как эти значения сохраняются?

Я ищу код/​​статьи о том, как использовать Autofac с моим загрузчиком. Я могу найти только для Ninject. У кого-нибудь есть код или статьи для меня?

Я нашел эти 2 хороших статей:

  1. http://www.dominicpettifer.co.uk/Blog/42/put-an-ioc-powered-bootstrapper-in-your-asp-net-mvc-application
  2. http://weblogs.asp.net/rashid/archive/2009/02/17/use-bootstrapper-in-your-asp-net-mvc-application-and-reduce-code-smell.aspx

Я пытаюсь сделать что-то вроде:

protected void Application_Start() 
{ 
    Bootstrapper.Run(); 
} 
+0

В autofac wiki есть информация о MVC 3 http://code.google.com/p/autofac/wiki/Mvc3Integration –

ответ

1

Является ли он по-прежнему разумно использовать bootstrapp er в MVC3, чтобы уменьшить количество кода в файле global.asax?

Я использую, скажем, загрузчик (фактически различные задачи запуска, выполненные в определенном порядке) в каждом веб-приложении. Я поставил в эти задачи все, что мне нужно настроить: из маршрутов и глобальных фильтров, настроить контейнер DI, загрузить настройки из db (после настройки контейнера DI) и так далее.

В общем, все, что вы могли бы поставить в global.asax.cs Application_Startnow находится в качестве задач в каталоге Start Up, а каждая задача - это простой класс, помеченный как задача запуска (для этого я использую свой собственный инструментарий) , Преимуществами загрузочной машины являются легкая поддержка этих задач, она не имеет неявного соединения с контейнером IoC, однако настройка контейнера обычно является чем-то, что выполняется при запуске приложения.

Если я хочу, чтобы загрузить настройки веб-узла (загруженные из базы данных), я делаю что здесь

Только если параметры являются статическими или необходимо настроить приложение. Это в значительной степени зависит от типа настроек и типа приложения. Нет четкого и однозначного ответа.

Если это так, то мне нужно, чтобы ввести эти параметры в каждом контроллере

Вы не вводить параметры в контроллер, вы впрыснуть dependecies и это работа IoC контейнера.

Если это произошло в загрузчике, как сохранить эти значения?

Загрузочный загрузчик используется только один раз, когда приложение запускается, чтобы настроить приложение, после чего оно отключено. Он не должен сохранять ценности.Возможно, вы задумываетесь о настройках, но даже если загрузочный загрузчик загружает их, эти настройки сохраняются в другом месте, обычно в кеше.

+0

В настройках здесь я имею в виду настройки клиента, может ли клиент это сделать и может ли клиент это сделать, электронные письма и т. д. –

+0

У вас есть код для загрузки настроек после настройки контейнера DI? –

+0

Настройки клиента не имеют места в загрузочном блоке, так как это веб-приложение, в котором несколько клиентов одновременно являются серверами. Эти настройки загружаются по каждому запросу. Я не могу предоставить вам код для загрузки настроек, поскольку это что-то конкретное для каждого приложения. – MikeSW

Смежные вопросы