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”] следует использовать только тогда, когда первое использование невозможно.
Я бы посоветовал, что слабо типизированные настройки старше и действительно должны использоваться только для обратной совместимости.
Строго типизированные настройки более надежны, поскольку они... строго типизированы.