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

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

4 ответа

Решение

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

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

Плюсы и минусы appSettings против applicationSettings (.NET app.config)

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

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

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

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

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

Другие вопросы по тегам