Я пытаюсь реализовать пользовательский языковой сервис на веб-странице MVC 2. У меня есть интерфейс IResourceDictionary, который предоставляет несколько методов для доступа к ресурсам по культуре. Это потому, что я хочу избежать статических классов ресурсов .Net.
Проблема в доступе к выбранному IResourceDictionary из представлений. Я размышлял об использовании данного ViewDataDictionary, создавая базовый контроллер, от которого наследуются все мои контроллеры, который добавляет мой IResourceDictionary в ViewData перед выполнением каждого действия.
Тогда я мог бы назвать свой словарь ресурсов следующим образом:
(ViewData["Resources"] as IResourceDictionary).GetEntry(params);
По общему признанию, это очень многословно и безобразно, особенно во встроенном коде, который мы рекомендуем использовать в MVC. Сейчас я склоняюсь к статическому доступу к классу
ResourceDictionary.GetEntry(params);
потому что это немного элегантнее. Я также подумал о том, чтобы добавить его в свою типизированную модель для каждой страницы, что кажется более надежным, чем добавление его в ViewData.
Каков предпочтительный способ доступа к моему ResourceDictionary из представлений? Все мои взгляды будут использовать этот словарь.