Mam BaseController, którego używam do przechowywania moich zagadnień przekrojowych dla projektu MVC.asp.net mvc z ioc -> unikanie zupy konstruktorów z BaseController
Oznacza to jednak, że moja Kontroler posiada 3 zależnościami:
public BaseController (IUserService u, ITenantDetailsService t, ISiteConfiguration c)
Efektem ubocznym jest to, że moi konstruktorów dla każdego sterownika pochodzącego są zalany parametrach:
public AccountController(ILocationService locationService, IAccountService accountService, IFormsAuthentication formsAuth, IMembershipService service, IUserService userService, ISiteConfiguration configuration)
: base(locationService,userService, configuration)
jestem za pomocą IoC (Windsor), aby rozwiązać moje kontrolery, więc wiem, że mógłbym usunąć zależności konstruktora i pozwolić mu automatycznie połączyć właściwości publiczne.
Czy istnieje powód, aby nie robić tego innego niż maskowanie niektórych zależności?
public AccountController (IAccountService, IFormsAuthentication, IMembershipService)
Podejście to wydaje się bardziej czytelne i daje jasny obraz zależności zależnych od tego konkretnego kontrolera.
Czy mam to wszystko źle i BaseController nie jest właściwym miejscem do przechowywania usług cięcia krzyżowego.
Myśli docenione.
Dzięki, Chris
Bardzo podoba mi się twoje podejście, ponieważ posiadanie jednej zależności jasno pokazuje, że magia nie jest po prostu wydarzeniem. – Chris