Локализация ASP.NET: изменение ресурсов без перезапуска приложения?

У меня есть требование, чтобы конечный пользователь мог изменять локализованные ресурсы, и изменения должны быть видны в приложении без необходимости перезапуска приложения.

Обновление, чтобы прояснить сценарий:
Я говорю об изменении локализованных ресурсов во время выполнения. Допустим, у меня есть опечатка в немецком переводе страницы. Тогда какой-нибудь пользователь-администратор должен иметь возможность изменить эту опечатку во время выполнения. Чтобы это изменение отразилось в пользовательском интерфейсе, не должно быть необходимости в повторном развертывании или перезапуске.

Я использую ASP.NET MVC3.

Какие у меня есть варианты?

Я собирался написать настраиваемый ResourceProvider , который загружает ресурсы из базы данных.
Это кажется не слишком большим усилием, однако пока я указал на два недостатка:

  • Он не работает с DataAnnotations, которые используются для удобной проверки в MVC3 (DataAnnotations работают с параметром ErrorMessageResourceType, который работает только с скомпилированными ресурсами)
  • Мы в основном должны предоставить наши собственные инструменты для управления ресурсами (например, перевод и т. Д.), Что очень жаль, поскольку для этого существует множество инструментов, которые работают с resx-файлами.

Какие есть другие варианты? Можно ли было бы манипулировать развернутыми resx-файлами во время выполнения?
Но я подозреваю, что приложение автоматически «перезапускается» при обнаружении этих изменений: я подозреваю, что ASP.NET понимает, что файлы resx изменились, затем перерабатывает пул приложений и на лету компилирует новые файлы resx.
Это правильно? Есть ли способ обойти это?

Я еще не рассматривал возможность компиляции ресурсов во вспомогательные сборки перед развертыванием. Это даже рекомендуемый сценарий для веб-приложений?
Но даже со скомпилированными вспомогательными сборками я подозреваю, что ASP.NET перезапускает приложение, когда эти сборки меняются на лету. Это правильно?

Мне было бы интересно узнать, как можно удовлетворить первоначальное требование? И мне были бы интересны любые комментарии по поводу упомянутых выше вариантов.

6
задан jbandi 27 August 2011 в 11:26
поделиться