Я предполагаю, что ваши защищенные интерфейсы являются зависимостями для контроллера. Можно настроить контейнер IoC для внедрения зависимостей для вас. Это, безусловно, можно сделать с помощью Виндзорского замка. Вам потребуется изменить класс BaseController, чтобы иметь конструктор с необходимыми зависимостями, если контейнер IoC знает о других сервисах, и он сможет их внедрять.