Изменяет ли атрибут файла appsettings то, что находится в app.config? - программирование
Подтвердить что ты не робот

Изменяет ли атрибут файла appsettings то, что находится в app.config?

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

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

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

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

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

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

или

<userId>123</userId>
4b9b3361

Ответ 1

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

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

Ответ 2

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

атрибут file

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