estoy mirando a los controladores en mi sitio web, y la mayoría de sus constructores tener este aspecto:ASP.NET MVC Controlador Dependencias (StructureMap)
public SomeController(
IServiceOne serviceOne,
IServiceTwo serviceTwo,
ILoggingService loggingService,
IGeospatialService geoSpatialService)
{
// copy to class variables.
}
En otras palabras, es muy peludo y hace refactorización difícil. Algunos controladores tienen alrededor de 8 dependencias.
¿Hay alguna forma en que pueda de alguna manera "agrupar" estas dependencias en uno o más depósitos?
Por ejemplo, ILoggingService
se requiere en cada controlador, IGeospatialService
es requerido por los controladores que hacen cosas espacial y IServiceOne
y IServiceTwo
sólo se requiere en ciertos casos.
me gustaría ver algo como esto:
public SomeController(
ICoreServicesGroup coreGroup,
ISomeNameForServicesGroup serviceGroup)
{
// copy to class variables.
}
estoy pensando que sería bueno introducir algunas técnicas OO, tales como tener una "base" clase de dependencias, de la cual toma un ILoggingService
en que es Ctor protegido Entonces podría tener otra dependencia infantil que hereda, etc.
¿Alguien ha hecho esto antes? ¿Esto es algo que StructureMap puede hacer por mí, o simplemente estoy rodando mi propio código básico?
iba a responder, pero terminaría diciendo algo como esto: http://stackoverflow.com/a/6026515/373378 –