В чем разница между файлом app.config и файлом XYZ.settings?

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

Но я нашел 2 способа сделать это. Когда я открываю диалог добавления нового элемента в Visual Studio 2008, он дает возможность создавать файл настроек (.settings) или файл конфигурации (.config). В чем разница между ними и в каком сценарии они должны использоваться?

Ответ 1

Настройки (оба из набора настроек и Configuration.AppSettings) хранятся в файле .config [рядом с множеством других материалов].

Разница в том, что в файле .settings [, который был добавлен в .NET 2.0/VS2005], слой строго типизирован поверх набора параметров, которые принадлежат вместе, тогда как Configuration.AppSettings просто позволяет вам извлекать строки, заставляя вас делать какие-либо преобразования и не имеет понятия по умолчанию. (класс конфигурации фактически был отключен в боковой сборке, чтобы отразить это - вам нужно добавить ссылку на System.Configuration явно, если вы этого хотите).

Добавление. проекта в проект приведет к добавлению app.config для размещения настроек, если у вас его еще нет. Класс, который считывает настройки, автоматически генерируется каждый раз при изменении списка параметров вашего компонента/приложения.

Другие функции .Settings - это возможность назначать некоторые настройки как пользовательские (а также сохранять настройки для конкретного пользователя с помощью одного вызова).

Лучшая причина для всех. Настройки обычно заключаются в том, что вы получаете возможность четко определять, кто использует этот параметр в базе кода, следуя обычаям свойств (и каждый набор является отдельным блоком в XML файле). Configuration.AppSettings более глобальна по своей природе - это всего лишь мешок свойств, и вы не знаете, какая DLL, подсистема или класс зависит от конкретной записи настроек. См. это сообщение в блоге от Стивена Смита для гораздо большего.

Наконец, если вы все еще недостаточно читали об управлении настройками, вы не будете бить этот пост Рика Страхла по этому вопросу для полноты или количества идей и углов.

ASIDE: там также ASP.NET vNext Configuration, outlined в этой статье, который является довольно гибким и предлагает другой подход к управлению настройками конфигурации.

Ответ 2

Файл настроек - это файл ресурсов, в котором вы указываете разные настройки и их значение по умолчанию.

Сами значения настраиваются в файле конфигурации приложения (файл .config).

Файл настроек никогда не развертывается, поэтому вам понадобится файл конфигурации для настройки.

Ответ 3

Файл app.config хранится в том же каталоге, что и приложение. У обычных пользователей не будет разрешений на запись (например, в "Program Files" ).

Файл настроек должен храниться в папке "AppData" пользователей (где у него есть права на r/w).

Поэтому используйте файл настроек для настраиваемых пользователем параметров.