Изменяет ли атрибут файла 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>
Ответы
Ответ 1
- Если файл не существует, он не потерпит крах, он будет просто проигнорирован.
- Внешний конфиг должен содержать узел
<appSettings>
поэтому ваш первый пример верен. - Значение во внешнем файле будет иметь приоритет, если значение не указано, используется значение app.config.
Это покрывает все?
Ответ 2
Один из лучших ответов по этому вопросу можно найти здесь: ASP.NET web.config: configSource и атрибуты файла - Кредит @Massimiliano Peluso
атрибут file
атрибут 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