У меня есть требование, чтобы конечный пользователь мог изменять локализованные ресурсы, и изменения должны быть видны в приложении без необходимости перезапуска приложения.
Обновление, чтобы прояснить сценарий:
Я говорю об изменении локализованных ресурсов во время выполнения. Допустим, у меня есть опечатка в немецком переводе страницы. Тогда какой-нибудь пользователь-администратор должен иметь возможность изменить эту опечатку во время выполнения. Чтобы это изменение отразилось в пользовательском интерфейсе, не должно быть необходимости в повторном развертывании или перезапуске.
Я использую ASP.NET MVC3.
Какие у меня есть варианты?
Я собирался написать настраиваемый ResourceProvider , который загружает ресурсы из базы данных.
Это кажется не слишком большим усилием, однако пока я указал на два недостатка:
Какие есть другие варианты? Можно ли было бы манипулировать развернутыми resx-файлами во время выполнения?
Но я подозреваю, что приложение автоматически «перезапускается» при обнаружении этих изменений: я подозреваю, что ASP.NET понимает, что файлы resx изменились, затем перерабатывает пул приложений и на лету компилирует новые файлы resx.
Это правильно? Есть ли способ обойти это?
Я еще не рассматривал возможность компиляции ресурсов во вспомогательные сборки перед развертыванием. Это даже рекомендуемый сценарий для веб-приложений?
Но даже со скомпилированными вспомогательными сборками я подозреваю, что ASP.NET перезапускает приложение, когда эти сборки меняются на лету. Это правильно?
Мне было бы интересно узнать, как можно удовлетворить первоначальное требование? И мне были бы интересны любые комментарии по поводу упомянутых выше вариантов.