Я хотел, чтобы базовый класс контроллера был абстрактным, а его конструктор защищен и параметризован. Обошел эту проблему, добавив пустой конструктор в ControllerBase, который генерирует исключение NotImplementedException.
Не совсем правильно, но работа сделана. Единственная проблема заключается в том, что в сочетании с внедрением зависимостей будет вызван неправильный конструктор - так как он выдает исключение, приложение сработает.
Код:
public abstract class ControllerBase : Controller
{
protected object AlwaysSupply { get; private set; }
public ControllerBase()
{
throw new NotImplementedException();
}
public ControllerBase(object alwaysSupply)
{
AlwaysSupply = alwaysSupply;
}
}
Это заставит T4MVC генерировать компилируемый код. Кажется, ошибка в том, что он всегда пытается сгенерировать пустой (без параметров) конструктор для классов контроллера.
Надеюсь, это кому-нибудь поможет.