Подтвердить что ты не робот

Ошибка IActionResult

Я только что загрузил исходный код музыкального магазина (microsoft sample projct) на основе ASP.NET 5. Я не понимаю, почему разработчики из Microsoft используют интерфейс IActionResult как возвращаемый тип в контроллерах.

Какова причина использования интерфейса IActionResult? Почему бы просто не использовать тип ActionResult.

введите описание изображения здесь

4b9b3361

Ответ 1

Смотрите это сообщение о IActionResult vs. ActionResult: http://forums.asp.net/post/5980446.aspx

IActionResult позволяет использовать более широкий диапазон типов возврата, включая любой настраиваемый код, реализующий интерфейс IActionResult. ActionResult ограничивается только теми классами, которые расширяют абстрактный класс ActionResult (который вы также можете делать с пользовательским кодом, но с помощью интерфейса допускает нечто вроде множественного наследования, а расширение класса не выполняется).

Ответ 2

Использование интерфейсов в качестве параметров позволит вам использовать инъекцию зависимостей для получения зависимостей, и эти зависимости могут быть заменены макетными реализациями при тестировании, которые реализуют эти интерфейсы.

Ответ 3

IActionResult имеет больше типов возврата, чем ActionResult. Например: если вы хотите вернуть HttpNotFound, вам нужно использовать тип возврата IActionResult.