В чем разница между разделом ApplicationSettings и разделом AppSettings?

Может кто-нибудь объяснить мне разницу между разделами AppSettings и ApplicationSettings в файле App.Config. Почему есть два разных раздела, которые, по-видимому, делают одно и то же ??


person Calanus    schedule 29.06.2009    source источник
comment
Где вы видите настройки приложения? Я не верю, что это правильный раздел конфигурации. Не могли бы вы опубликовать пример?   -  person alanquillin    schedule 29.06.2009
comment
Извините, я имею в виду ApplicationSettings, а не Application Settings   -  person Calanus    schedule 29.06.2009


Ответы (3)


Я считаю, что коллекция <appsettings/> в вашем app.config / web.config позволяет хранить настройки в парах ключ-значение и доступна через API System.Configuration следующим образом:

string setting = System.Configuration.ConfigurationManager.AppSettings["settingName"];

Параметры можно сохранять и получать только как строковые значения.
К ним также можно получить доступ через System.Configuration.ConfigurationSettings, но этот способ устарел.

Коллекция <ApplicationSettings/> в вашем файле конфигурации хранит ваши настройки строго типизированным способом, а также позволяет вам получить доступ к этим настройкам строго типизированным способом. VS автоматически создает для вас классы-оболочки в файле settings.settings в папке Свойства вашего проекта. Чтобы добавить файл настроек в проект, щелкните проект правой кнопкой мыши и выберите Свойства, затем откройте вкладку Настройки. Затем щелкните ссылку, чтобы добавить новый файл настроек. VS автоматически сгенерирует его для вас. Это так просто.

Обычно вы получаете доступ к своим настройкам следующим образом:

MyProjectName.Properties.Settings.Default.SettingName

Обратите внимание на разницу в способах доступа к двум коллекциям.

Второй (не рекомендуемый) способ сохранения настроек - лучший способ сделать это, он обеспечивает большую гибкость и мощность. Хотя это требует некоторого обучения, но оно того стоит.

person Saajid Ismail    schedule 29.06.2009
comment
Вышеуказанный способ работы устарел. - System.Configuration.ConfigurationSettings.AppSettings устарел, но заменен на System.Configuration.ConfigurationManager.AppSettings. Использование раздела конфигурации ‹appSettings› не устарело. - person Joe; 29.06.2009
comment
Ааааааааааааааааааааааааааааааааааа, правильно! Спасибо за это разъяснение. - person Calanus; 30.06.2009
comment
Почти пропустил добавление @Jo. Добавлен в исходный пост для людей, которые не читают все комментарии. - person Boris Callens; 09.03.2012

http://kevinskorner.net/blog/post/2008/03/27/applicationSettings-vs-appSettings.aspx

Настройки приложения дают нам больше контроля и, самое главное, интеллекта.

person Matthew Vines    schedule 29.06.2009
comment
Эта ссылка мертва, но доступна на Archive.org: http://web.archive.org/web/20100721004740/http://kevinskorner.net/blog/post/2008/03/27/applicationSettings-vs-appSettings.aspx - person Nick; 06.03.2015

Это связано с обратной совместимостью, которую мы все любим. ApplicationSettings - это более новая конструкция.

Используйте новые классы ConfigurationManager и WebConfigurationManager, чтобы получить доступ к своим настройкам сейчас, и для этого вам понадобится ссылка, поэтому System.configuration, а не System.Configuration :).

В какой-то момент это стало немного глупо, не так ли.

person Robert    schedule 29.06.2009