Вам нужно подумать, для чего именно нужны файлы конфигурации в .NET. Это место для определения различий между развертываниями вашего приложения. Поэтому, когда вы говорите о динамическом изменении конфигурации, основанной на кодированной логике, я думаю, что вы могли бы ошибиться. Это ваш код, который должен принимать направление от настроек, введенных через конфигурацию.
Кажется, вы ищете какой-нибудь редактор настроек? Зачем это делать, когда в Visual Studio есть два встроенных? Окно редактирования и различные редакторы конфигурации, редактор конфигурации ASP.NET, редактор конфигурации службы Microsoft и т. Д.
По моему опыту, различия между web или app.config в среде Dev по сравнению с тестовой средой по сравнению с производственной средой обычно отличаются лишь несколькими параметрами, такими как строки подключения, AppSettings, адреса очереди сообщений, конечные точки службы, Настройки Log4Net и т. Д.
Хорошо, довольно много настроек, но в каждом блоке конфигурации обычно есть только один или два атрибута, которые отличаются от среды к среде. Исключением является конфигурация IOC, например Spring.NET, CastleWinsor или Unity. Но даже тогда они часто совершенно одинаковы в разных средах.
Я бы посоветовал вам уйти и немного подумать об этом. Подумайте о реальной проблеме, которую вы пытаетесь решить. Возможно, вам нужен какой-то рабочий процесс, управляемый базой данных? Я не знаю.
Я просто знаю, что конфиг не должен управляться кодом времени выполнения. Это развертывание и сборка.
Сказав это, есть такие инструменты, как ConfigGen , что позволяет с легкостью генерировать конфигурацию для конкретной среды. Проверьте это, когда это действительно то, что вам нужно.