web-dev-qa-db-fra.com

IActionResult malentendu

Je viens de télécharger le code source music store (Microsoft sample project) basé sur ASP.NET 5. Je ne comprends pas pourquoi les développeurs de Microsoft utilisent l'interface IActionResult comme type de retour dans les contrôleurs. 

Quelle est la raison de l'utilisation de l'interface IActionResult? Pourquoi ne pas simplement utiliser le type ActionResult.

 enter image description here

16
Vnuuk

Voir ce message à propos de IActionResult contre ActionResult: http://forums.asp.net/post/5980446.aspx

IActionResult autorise un plus grand nombre de types de retour, y compris tout code personnalisé implémentant l'interface IActionResult. ActionResult est limité uniquement aux classes qui étendent la classe abstraite ActionResult (ce que vous pouvez également faire avec du code personnalisé, mais l'utilisation d'une interface permet quelque chose comme l'héritage multiple, contrairement à l'extension d'une classe).

26
R. Salisbury

L'utilisation d'interfaces en tant que paramètres vous permettra d'utiliser l'injection de dépendances pour obtenir ses dépendances. Ces dépendances peuvent être remplacées par des implémentations factices lors du test d'implémentation de ces interfaces. 

1
gomac

IActionResult a plus de types de retour que ActionResult. Par exemple, si vous voulez renvoyer HttpNotFound, vous devez utiliser le type de retour IActionResult. 

0
Eldiyar Talantbek