Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
IConfig (и реализация).
Аналогично Repository, конфигуратор будем создавать как сервис. Создаем IConfig и Config-реализацию в папке Global (/Global/Config/IConfig.cs): public interface IConfig { string Lang { get; } } И public class Config: IConfig { public string Lang { get { return " ru"; } } } Добавляем строку в RegisterServices (/App_Start/NinjectWebCommon.cs): kernel.Bind< IConfig> ().To< Config> ().InSingletonScope(); И выводим в BaseController: [Inject] public IConfig Config { get; set; }
Теперь сделаем в инициализации контроллера переопеределение CultureInfo в потоке (/Controllers/BaseController.cs): protected override void Initialize(System.Web.Routing.RequestContext requestContext) { try { var cultureInfo = new CultureInfo(Config.Lang);
Thread.CurrentThread.CurrentCulture = cultureInfo; Thread.CurrentThread.CurrentUICulture = cultureInfo; } catch (Exception ex) { logger.Error(" Culture not found", ex); }
base.Initialize(requestContext); } И добавим вывод даты в Index.cshtml (/Areas/Default/Views/Home/Index.cshtml): @DateTime.Now.ToString(" D") Получаем вывод: И по-настоящему свяжем это с Web.Config. Добавим в Web.config в appSettings строку: < add key=" Culture" value=" ru" /> В Config.cs (/Global/Config/Config.cs): public string Lang { get { return ConfigurationManager.AppSettings[" Culture" ] as string; } } Запускаем – результат тот же, теперь изменим значение в Web.config на fr: < add key=" Culture" value=" fr" /> Получаем дату: mardi 5 mars 2013 Отлично! Можете попробовать еще с несколькими языками. Список сокращений находится тут https://msdn.microsoft.com/en-us/goglobal/bb896001.aspx
|