В чем разница между секцией ApplicationSettings и секцией AppSettings?

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

Ответы

Ответ 1

Я считаю, что коллекция <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

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

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

Ответ 3

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

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

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