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