Tout en essayant d'apprendre de l'Unité, je continue à voir le code suivant pour remplacer GetControllerInstance
MVC:
if(!typeof(IController).IsAssignableFrom(controllerType)) { ... }
cela me semble être une assez alambiqué façon de l'écrire
if(controllerType is IController) { ... }
J'apprécie qu'il y a de subtiles différences entre is
et IsAssignableFrom
, c'est à dire IsAssignableFrom
n'inclut pas la fonte des conversions, mais j'ai du mal à comprendre les implications de cette différence dans la pratique des scénarios.
Quand est-il imporantant de choisir IsAssignableFrom
sur is
? Quelle différence cela ferait-il dans l' GetControllerExample
?
if (!typeof(IController).IsAssignableFrom(controllerType))
throw new ArgumentException(...);
return _container.Resolve(controllerType) as IController;