Очень часто я вижу ответ на вопрос: "Как мне хранить настройки в своем приложении .NET?" - отредактировать файл app.config, вручную добавив записи в app.config(или web.config) следующим образом:
<configuration>
<appSettings>
**<add key="ConfigValueName" value="ABC"/>**
</appSettings>
</configuration>
Затем, обращаясь к ним следующим образом:
string configValue = Configuration.AppSettings["ConfigValueName"];
Я рассмотрю подход, описанный выше, как подход "app.config". Очень редко я вижу, что люди рекомендуют добавлять в проект файл "Настройки". Я видел это много раз в Интернете и в stackoverflow... Я начинаю задаваться вопросом, не хватает ли я чего-то... потому что я не уверен, почему вы использовали этот метод, используя "Настройки" файл. Я не попадал в .NET до VS2005, поэтому у меня есть одна теория, так это то, как все было сделано в VS2003, и люди никогда не переключались?
Примеры людей, рекомендующих подход app.config:
- Самый простой способ иметь файл конфигурации в приложении Windows Forms С#
- Лучшие практики: как сохранить настройки в С# (формат/тип)?
С моей точки зрения существует следующие преимущества подхода "Файл настроек":
- Может использоваться как для параметров приложения (общих для всех пользователей), так и для пользовательских настроек из одного и того же интерфейса.
- Возможность использования поддержки конструктора настроек в visual studio. Меньшая ошибка, а затем редактирование файла XML напрямую IMHO.
- Рефакторинг - вы можете переименовать определенное имя параметра, и оно автоматически обновит ссылки в вашем коде.
- Проверка типа компиляции.
- Поддержка автоматического завершения.
- Возможности Property-Grid. Я обнаружил, что элемент управления PropertyGrid - это очень простой способ создания быстрой формы. Вы просто выполняете
propertyGrid1.SelectedObject = Settings1.Default;
, и все готово.
Если вы не знаете, что я подразумеваю под файловым подходом "Настройки", см. этот пост, который является одним из немногих примеров, когда кто-то рекомендует использовать файлы настроек вместо app.confg.
РЕДАКТИРОВАТЬ: Пожалуйста, поймите: цель этой темы - выяснить, почему люди используют подход app.config, описанный выше в отношении файла настроек. Я столкнулся с ограничениями параметра "Файл настроек" и вынужден был иногда откатывать свое собственное решение. Это совсем другое обсуждение.