У нас есть довольно большое решение .NET с несколькими исполняемыми проектами (программы winforms и командной строки). В настоящее время каждый из этих проектов имеет собственный app.config, содержащий строки подключения, настройки почтового сервера и тому подобное. Как вы можете себе представить, не так уж и удобно вносить изменения в каждый файл app.config всякий раз, когда необходимо обновить конкретный параметр.
Что, по вашему мнению, является лучшей практикой для централизованного управления этими настройками? До сих пор я думал о двух разных подходах. Первый использует пользовательский класс (или классы), который содержит настройки и сериализуется в XML и десериализуется из него. Второй подход заключается в определении файла app.config только для одного проекта и использовании ConfigurationManager.OpenExeConfiguration() для доступа к нему.