Почему контроллеры MVC должны иметь конечное соглашение «Контроллер» в имени своего класса?

Мне кажется смешным, что MVC не распознает контроллер, если у него нет «Контроллера». добавляется к имени класса.Этот ответ упоминаетControllerDescriptor а такжеControllerTypeCache как два места в MVC, где это соглашение установлено.

Мой вопрос почему? Это явно не соглашение о конфигурации, так какIsControllerType вControllerTypeCache проверяет, что класс:

Is public Is not abstract Implementes IController Ends with "Controller"

Кто-нибудь знает причину этого? После того, как все контроллеры, вероятно, будут в реальном проекте MVC, в папке с именем «Контроллеры», и простой двойной щелчок по файлу покажет нам, что класс наследуетController.

Просто кажется мне глупым - но мне было интересно, если естьactual Причина, по которой они это сделали.

EDIT

Только что виделэтот блог Фил Хаак со вчерашнего дня, где он обсуждает решение этой конвенции - он того же мнения обо мне - возможно, немного бессмысленно!

Ответы на вопрос(3)

Ваш ответ на вопрос