Leí todo este hilo, dos veces, y creo que las personas responden por lo que saben, no por lo que se les pregunta.
La pregunta original de JP parece que está construyendo objetos enviando un resolutor, y luego un montón de clases, pero estamos asumiendo que esas clases / objetos son en sí mismos servicios, listos para la inyección. ¿Y si no lo son?
JP, si está buscando aprovechar la DI y desea la gloria de mezclar la inyección con datos contextuales, ninguno de estos patrones (o supuestos "antipatrones") aborda específicamente eso. En realidad, se reduce a usar un paquete que lo apoyará en tal esfuerzo.
Container.GetSevice<MyClass>(someObject1, someObject2)
... este formato rara vez es compatible. Creo que la dificultad de programar dicho soporte, sumado al rendimiento miserable que se asociaría con la implementación, lo hace poco atractivo para los desarrolladores de código abierto.
Pero debería hacerse, porque debería ser capaz de crear y registrar una fábrica para MyClass'es, y esa fábrica debería poder recibir datos / entradas que no se conviertan en un "servicio" por el simple hecho de pasar datos. Si el "antipatrón" se trata de consecuencias negativas, entonces forzar la existencia de tipos de servicios artificiales para pasar datos / modelos es ciertamente negativo (a la par con su sensación de envolver sus clases en un contenedor. Se aplica el mismo instinto).
Sin embargo, hay un marco que puede ayudar, incluso si se ven un poco feos. Por ejemplo, Ninject:
Crear una instancia usando Ninject con parámetros adicionales en el constructor
Eso es para .NET, es popular y todavía no está tan limpio como debería ser, pero estoy seguro de que hay algo en el idioma que elijas emplear.