Это зависит. Конечно. : -)
Какова цель вашего файла конфигурации и, что более важно, кто является целевой аудиторией? Кто будет читать или редактировать файл конфигурации позже?
Если основная цель состоит в том, чтобы подключить приложение, и оно предназначено для разработчиков, и ваши типы достаточно хорошо названы, тогда вы можете обойтись без использования только конфигурации контейнера DI. Опасность заключается в том, что у вас есть много посторонних деталей, которые на самом деле не имеют ничего общего с «настройкой» приложения как такового. Если вы собираетесь изменить, например, строку подключения, вы действительно хотите, чтобы это было в одном месте, четко обозначенном как строка подключения.
Вот почему я спрашиваю, какова аудитория и цель. Более точные метки XML могут сделать поиск и редактирование нужных мест для администратора проще, быстрее и менее подвержены ошибкам.
Сказав это, делать что-либо, кроме простых пар имя / значение с System.Configuration, - гигантская боль в туху. Классы конфигурации .NET содержат ошибки, серьезно недокументированы и полны странного, неожиданного поведения.
Я бы предложил начать с настройки контейнера, чтобы начать работу, а затем потратить некоторое время на явное проектирование вашей схемы конфигурации, сконцентрировавшись на ваших случаях использования и простоте редактирования.
Я не знаю Spring, поэтому не могу ничего сказать о том, как он там работает. С Unity довольно легко смешивать и сочетать. Вы можете использовать файлы конфигурации API AND, поэтому поместите материал, необходимый для работы приложения, в вызовы API, и настраиваемый пользователем материал в файл конфигурации. Это и разделение на отдельные определения контейнеров и даже отдельные файлы конфигурации дает вам возможность отделить внутреннюю проводку от того, что администраторы должны или должны были бы коснуться.
Кроме того, в качестве последнего средства схема конфигурации Unity сама по себе является расширяемой, поэтому вы можете добавить теги в раздел конфигурации Unity. Но для этого нужно поработать с System.Configuration и , вписав их в конфигурационную среду Unity, так что это еще больше работы.
Итак, TL; DR: Здесь нет ни одного хорошего ответа. Общая схема конфигурации DI имеет преимущество в том, что она общая и уже написана. У него есть недостаток, заключающийся в том, что не обязательно очевидно, что должно быть изменено администратором, и что такое внутренняя разводка, которая может сильно испортить ситуацию. Пользовательские разделы конфигурации - это, вероятно, большая работа, которую нужно написать, но если все сделано правильно, администраторы получат четкие и очевидные моменты для редактирования, не нарушая всего здания неочевидным способом.