Мне кажется смешным, что MVC не распознает контроллер, если у него нет "Контроллера", добавленного к имени класса. Этот ответ упоминает ControllerDescriptor и ControllerTypeCache как два места в MVC, где это соглашение настроено.
Мой вопрос - почему? Это явно не соглашение о конфигурации, так как IsControllerType в ControllerTypeCache проверяет, что класс:
- Является общедоступным
- Не абстрактно
- Реализует
IController - Заканчивается
"Controller"
Кто-нибудь знает причину этого? После того, как все контроллеры, вероятно, будут в реальном проекте MVC, в папке с именем "Контроллеры", а простой двойной щелчок по файлу покажет нам, что класс наследует Controller.
Просто мне кажется глупым, но мне было интересно, существует ли фактическая причина, по которой они это сделали.
ИЗМЕНИТЬ
Только что увидели этот пост в блоге от Фила Хаака со вчерашнего дня, где он обсуждает решение этого соглашения - он имеет одинаковую мысль обо мне - Наверное, немного бессмысленно!