ConfigurationManager.AppSettings [ "SettingName" ] vs Properties.Settings.Default.SettingName, когда я должен использовать их каждый?

Что должно диктовать, когда я должен использовать configureManager.AppSettings или строго типизированные настройки, созданные visual studio? В большинстве случаев сильно типизированные типы кажутся гораздо более подходящими, но я полагаю, что можно было бы динамически добавлять настройки в развернутое приложение с использованием подхода ConfigurationManager, но есть ли какие-либо рекомендации, при каких обстоятельствах каждый из них предназначен для использования?

Ответ 1

Из чего я читает, выглядит как AppSettings - это более старый способ делать что-то. Документы MSDN что пользовательские настройки могут быть записаны во время выполнения, если вы используете настройки.

Я всегда предпочитаю строго типизированные настройки, которые могут быть реализованы с помощью обработчиков ConfigSection.

Плюсы и минусы appSettings vs applicationSettings (.NET app.config)

Ответ 2

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

И да, вы можете использовать AppSettings для динамически генерируемых настроек, но это тоже редко.

Ответ 3

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

Сильно типизированные настройки более надежны, поскольку они... строго типизированы.

Ответ 4

Используйте Properties.Settings.Default.SettingName. Но ConfigurationManager.AppSettings [ "SettingName" ] следует использовать только тогда, когда первый невозможно использовать.