2009-10-05 5 views
0

Я работаю над многоязычным сайтом, написанным на asp.net, используя mvc 1.0. Мне было предложено переключиться с файлов ресурсов на базу данных, чтобы позволить моему клиенту изменять строки перевода без необходимости перезапуска службы.Может ли ресурс быть заменен во время выполнения в asp.net?

Интересно, можно ли заменить трансляцию во время выполнения стандартным файлом ресурсов.

Вопрос:

Как я могу позволить моему клиенту заменить переводы во время выполнения без необходимости простоя?

Вот исходные идеи, позволяющие решить проблему. Любые мысли приветствуются:

  • Использование IIS для изящного перезапуска приложения после подключения спутниковой сборки ресурса. Изящно означает, что все новые запросы используют обновленные сборки. (Не заблокированы ли файлы сборки?)
  • Наконец, рушится мой собственный поставщик ресурсов (который читает XML-файл) и подключает его к диспетчеру ресурсов. (Я никогда этого не делал, поэтому приветствую любую помощь)
+0

Как часто транслировать струны, идущие на chnage? Не часто бы было мое предположение .... –

ответ

0

Да, вы можете катить собственный формат поиска строк, вместо того, чтобы использовать то, что имеет .NET. Это было сделано раньше, и я уверен, что это будет сделано снова.

Очевидным недостатком является то, что он не имеет ничего общего со стандартными ресурсами, поэтому вы сами по себе с точки зрения инструментов, производительности и т. Д.

+0

Возможно ли перезагрузить спутник dll во время выполнения? Это заставит меня придерживаться стандартных ресурсов. –

+0

В общем случае невозможно выгрузить любую сборку, за исключением загрузки ее в AppDomain и последующего удаления всего объекта. Я не думаю, что это будет хорошим решением для ресурсов, учитывая накладные расходы между доменами. Сказав это, одна из возможностей состоит в том, чтобы использовать сборки спутниковых ресурсов в качестве канонического хранилища, но кэшировать их в словаре. Другими словами, загрузите сборку в AppDomain, скопируйте ее в локальный словарь и выгрузите AppDomain. Лучшее обоих миров? –

Смежные вопросы