Sto usando un ORM che non mi permette di iniettare dipendenze nel costruttore. Diciamo che sto usando DDD per la business logic e il pattern MVC per l'interfaccia utente.
Ora uno dei miei oggetti di dominio deve accedere a un servizio esterno. Sono molto contrario all'anti-pattern del localizzatore di servizi (non lo toccherei con un palo di dieci piedi), ma come vedo, questo mi lascia con il seguente:
class Controller
{
private readonly IExternalService _externalService;
public Controller(IExternalService externalService)
{
_externalService = externalService;
}
public ViewResult Action(Guid Id)
{
// Omitted repository access for brevity.
domainObject.DoSomethingWichNeedsAnExternalService(_externalService);
}
}
In qualche modo ho la sensazione che questo non sia molto pulito, e se il "domainObject" è sepolto in profondità nel modello / grafico, se "_externalService" dovesse essere passato completamente giù?
Esistono alternative di best practice?