ОБНОВЛЕНИЕ: в ASP.NET Core Land конфигурация больше не управляется ни одним из них - посмотрите эту фантастическую запись от Трэвиса Иллига с буквами az на Microsoft.Extension.Configuration
и Microsoft.Extensions.Configuration.Binder
, которые, по сути, являются надмножеством всего этого
Настройки (как из набора .settings, так и Configuration.AppSettings
) хранятся в файле .config [вместе с множеством других вещей].
Разница в том, что материал .settings [который был добавлен в .NET 2.0 / VS2005] накладывает строго типизированный класс поверх набора параметров, которые принадлежат друг другу, тогда как Configuration.AppSettings
просто позволяет вам извлекать строки, заставляя вас выполнять любые преобразования, и не имеет понятия о значениях по умолчанию. (класс Configuration был фактически перемещен в боковую сборку, чтобы отразить это - вам нужно явно добавить ссылку на System.Configuration, если вы этого хотите).
Добавление .settings в ваш проект приведет к добавлению app.config для хранения настроек, если у вас его еще нет. Класс, который читает настройки, автоматически создается каждый раз, когда вы меняете список настроек для вашего компонента / приложения.
Другие особенности .Settings - это возможность назначать некоторые настройки как пользовательские (а также сохранять пользовательские настройки с помощью одного вызова).
Лучшая причина для использования .Settings обычно заключается в том, что вы получаете возможность четко определять, кто использует какие настройки в базе кода, следя за использованием свойств (и каждый набор является отдельным блоком в файле XML). Configuration.appSettings
более глобален по своей природе - это просто набор свойств, и вы не знаете, какая DLL, подсистема или класс зависит от конкретной записи параметра. Дополнительные сведения см. В этом сообщении в блоге Стивена Смита.
Наконец, если вы все еще недостаточно ознакомились с управлением настройками, вам не удастся победить этот пост Рика Страла на эту тему для полноты или огромного количества идей и точек зрения.
В стороне: есть также материал ASP.NET vNext Configuration, , описанный в этой статье, который является довольно гибким и предлагает другой взгляд на управление параметрами конфигурации.
person
Ruben Bartelink
schedule
26.05.2009