2013-05-23 2 views
3

Насколько я понимаю, я должен использовать System.Configuration.ConfigurationManager для чтения настроек приложения в настольных приложениях и System.Web.Configuration.WebConfigurationManager, чтобы сделать то же самое в веб-приложениях. Об этом говорит MSDN.Использование ConfigurationManager в веб-приложениях

Я разрабатываю компонент, который будет развернут как на рабочих столах, так и на веб-серверах, поэтому я пытаюсь сделать логику конфигурации независимой от платформы. К моему удивлению, я случайно обнаружил, что настройки приложения читаются правильно, используя System.Configuration.ConfigurationManager на веб-сервере.

У меня есть два взаимосвязанных вопроса:

  1. Может кто-нибудь подтвердить, что это работает систематически?
  2. Каковы ограничения или риски использования System.Configuration.ConfigurationManager в веб-приложениях?

Спасибо.

ответ

3

MSDN saysWebConfigurationManager - предпочтительный способ работы с файлами конфигурации в веб-приложениях.

В веб-приложениях конфигурация может быть унаследована из файла web.config в родительском виртуальном каталоге: WebConfigurationManager будет обрабатывать такие унаследованные настройки правильно, что, на мой взгляд, неверно для ConfigurationManager.

Конечно, если ваше приложение не наследует такие настройки (например, всегда находится в корневом каталоге веб-сайта), это не относится к вам.

1

System.Web.Configuration.WebConfigurationManager.AppSettings и System.Web.Configuration.WebConfigurationManager.ConnectionStrings внутренне использует то же самое System.Configuration.ConfigurationManager - поэтому нет никакой разницы.

MSDN говорит:

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

Другие методы System.Web.Configuration.WebConfigurationManager связаны с конфигурацией ASP.NET. Я рассматриваю System.Web.Configuration.WebConfigurationManager как расширение ConfigurationManager или даже адаптацию для веб-экосистемы.

Итак, вы должны использовать общий System.Configuration.ConfigurationManager.

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