Я категорически думаю, что ваш контроллер взаимодействует со слишком многими службами. Я не видел ваш код - поэтому я отказываюсь от предположений - но мне кажется, что ваш контроллер создает бизнес-логику, вызывая многочисленные «маленькие» службы, а не используя меньшее количество «больших» служб, которые составляют бизнес-логику от небольших услуг.
Посмотрите информацию об «услугах оркестровки» и «объектах» или «возможностях», и вы поймете, что я имею в виду. Если вы создаете сервисы оркестровки, которые предоставляют вашим контроллерам необходимую логику, ваша архитектура улучшается, потому что ваши контроллеры действительно не должны содержать никакой бизнес-логики.
Я действительно думаю, что количество услуг, которые вы потребляете, является проблемой здесь. Контейнеры IoC могут каким-то образом решить, каким образом вы привязываете типы к параметрам инъекции и т. Д., Но я думаю, что проблема заключается в вашей архитектуре на данный момент.