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.
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).
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.
IActionResult
a plus de types de retour que ActionResult
. Par exemple, si vous voulez renvoyer HttpNotFound
, vous devez utiliser le type de retour IActionResult.