¿Es posible implementar la inyección de dependencia sin usar el localizador de servicios al inicio de una aplicación?

¿Es posible implementar la inyección de dependencia sin usar el localizador de servicios al inicio de una aplicación?

No entiendes lo que es un localizador de servicios. Entiendes la parte de que es un antipatrón, lo cual es bueno, pero lo que te falta es que el patrón no se trata de la mecánica, sino del papel que desempeña en la aplicación. En otras palabras:


No hay nada intrínsecamente malo en llamar a la clase que encapsula el código de arranque del contenedor DI ServiceLocator , pero también podrías llamarlo Startup , Bootstrap o ContainerWrapper , es solo una convención de nomenclatura.

Por otro lado ServiceLocator como patrón de diseño, generalmente se considera un antipatrón, ya que se convierte en una dependencia fuerte para el resto del código y hace que los cambios y las pruebas sean difíciles e impredecibles. En tu código es Resolve<T> método del que te gustaría mantenerte alejado para evitar las consecuencias.

https://en.m.wikipedia.org/wiki/Service_locator_pattern

Y para responder a su pregunta, generalmente se requiere una pieza de código para inicializar el contenedor DI en cualquier caso, incluso cuando está oculto para usted como parte de un marco DI más grande, aunque algunos marcos permiten configurar su contenedor desde el archivo de configuración también. ¡Espero que ayude!