Может кто-нибудь объяснить мне разницу между разделами AppSettings и ApplicationSettings в файле App.Config. Почему есть два разных раздела, которые, по-видимому, делают одно и то же ??
В чем разница между разделом ApplicationSettings и разделом AppSettings?
Ответы (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
Обратите внимание на разницу в способах доступа к двум коллекциям.
Второй (не рекомендуемый) способ сохранения настроек - лучший способ сделать это, он обеспечивает большую гибкость и мощность. Хотя это требует некоторого обучения, но оно того стоит.
http://kevinskorner.net/blog/post/2008/03/27/applicationSettings-vs-appSettings.aspx
Настройки приложения дают нам больше контроля и, самое главное, интеллекта.
Это связано с обратной совместимостью, которую мы все любим. ApplicationSettings - это более новая конструкция.
Используйте новые классы ConfigurationManager и WebConfigurationManager, чтобы получить доступ к своим настройкам сейчас, и для этого вам понадобится ссылка, поэтому System.configuration, а не System.Configuration :).
В какой-то момент это стало немного глупо, не так ли.