Файл -> Новый проект для проектов ASP.NET MVC, используемых для создания контроллеров с виртуальными действиями. Я не уверен, прекратилось ли это с MVC 2 или MVC 3, но это больше не лучшая практика?
Должен ли я сделать действия контроллера ASP.NET MVC виртуальными?
Ответы (4)
T4MVC Делает методы действий виртуальными. Если вы используете его, он должен сделать методы действий виртуальными, иначе он не может работать.
текущая документация для ASP.NET MVC 3. не показывает виртуальные методы. Я не совсем уверен, что даст вам их virtual
, поскольку я никогда не делил контроллеры на подклассы для переопределения действий.
Если вы сделаете их виртуальными, вам будет легче издеваться над контроллерами, если вы используете их в тестах.
Сгенерированный код может быть сделан виртуальным по разным причинам. Не рекомендуется делать свой собственный код виртуальным, если это не требуется каким-либо инструментом. См. принцип замещения Лисков и принцип открытого/закрытого состояния. Я думаю, что некоторые фреймворки делают это, чтобы облегчить создание прокси, но я не могу представить себе никаких причин делать все ваши методы виртуальными. Для меня это кричит о копировании/вставке или культовом карго-программисте.