Атрибут файла appsettings переопределяет то, что находится в app.config? - PullRequest
22 голосов
/ 24 января 2012

Тег appsettings в app.config имеет атрибут файла:

<appSettings file="other.config">
..
..
</appSettings>

Как это работает? Будет ли он объединять то, что находится в appSettings (оригинал), с другим файлом .config? Или это перезапишет это? Что, если файл other.config не существует, должен ли он произойти сбой?

Я сам пробую, и если ключ не в оригинале, он, кажется, не читает его из other.config?

Должен ли файл other.config содержать только узлы xml или он должен находиться внутри элемента appsettings?

<appSettings>
  <userId>123</userId>
</appSettings>

или

<userId>123</userId>

Ответы [ 2 ]

40 голосов
/ 24 января 2012
  • Если файл не существует, он не потерпит крах, он будет просто проигнорирован.
  • Внешний конфиг должен содержать узел <appSettings>, поэтому ваш первый пример верен.
  • Значение во внешнем файле будет иметь приоритет, если значение не указано, используется значение app.config.

Это покрывает все?

2 голосов
/ 05 сентября 2018

Один из лучших ответов по этому вопросу находится здесь: ASP.NET web.config: configSource против атрибутов файла - Кредит @Massimiliano Peluso

file атрибут

  • Указывает относительный путь к внешнему файлу, который содержит пользовательские параметры конфигурации приложения
  • специфично для appSettings секции
  • будет объединять (и переопределять) настройки в файле .config
  • не приведет к перезапуску веб-приложения при изменении указанного файла
  • http://msdn.microsoft.com/en-US/library/ms228154(v=vs.100).aspx
  • Использование Конфигурация . AppSettings . Настройки . Добавление API приведет к объединению всех настроек обратно в основной * 1031. * на Конфигурация . Сохранить Вызов.
  • начиная с .NET 1.1
  • Исключение не выдается, если файл не существует.

configSource атрибут

Атрибут file указывает внешний файл, содержащий пользовательские настройки, как вы делаете это в записи appSettings файла web.config. Между тем, внешний файл, указанный в атрибуте configSource, содержит параметры раздела, для которого вы объявляете configSource. Например, если вы используете атрибут configSource в разделе страниц, то внешний файл будет содержать настройки для раздела страниц.

Пользовательские настройки, объявленные во внешнем конфиге, указанном в Атрибут файла будет объединен с настройками в appSettings раздел в файле web.config. В то же время, configSource не поддерживает слияние, это означает, что вам придется переместить весь раздел настроек во внешний файл.

http://www.codeproject.com/Messages/1463547/Re-difference-between-configSource-and-file-attrib.aspx

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