J'ai un BaseController que j'utilise pour gérer mes problèmes transversaux pour un projet MVC.asp.net mvc avec ioc -> évitant la soupe constructor avec BaseController
Cependant, cela signifie que mon contrôleur dispose de 3 dépendances:
public BaseController (IUserService u, ITenantDetailsService t, ISiteConfiguration c)
L'effet secondaire est que mes constructeurs pour chaque contrôleur dérivé croulent sous les paramètres:
public AccountController(ILocationService locationService, IAccountService accountService, IFormsAuthentication formsAuth, IMembershipService service, IUserService userService, ISiteConfiguration configuration)
: base(locationService,userService, configuration)
Je suis En utilisant IoC (Windsor) pour résoudre mes contrôleurs, sachez que je pourrais supprimer les dépendances du constructeur et le laisser auto-câbler les propriétés publiques.
Y a-t-il une raison pour ne pas le faire autre que masquer certaines des dépendances?
public AccountController (IAccountService, IFormsAuthentication, IMembershipService)
Cette approche semble plus lisible et donne un aperçu clair des dépendances pertinentes à ce contrôleur spécifique. Ou ai-je tout faux et un BaseController n'est pas l'endroit approprié pour stocker les services de coupe transversale.
Pensées appréciées.
Merci, Chris
J'aime beaucoup votre approche car avoir une seule dépendance montre clairement que la magie ne se produit pas. – Chris