Búsqueda de sitios web

typescript - InversifyJS - ¿Cuál es la diferencia entre .to y .toService?


Estoy confundido por la documentación, que afirma que .toService(MyClass) se usa para enlaces transitivos. Pero en los ejemplos mostrados, puedo lograr lo mismo usando un .to(MyClass) regular también.

https://github.com/inversify/InversifyJS/blob/master/wiki/transitive_bindings.md

¿Cuál es el caso de uso concreto de .toService()?

Respuesta #1

El método .to() se utiliza cuando estás vinculando una interfaz o símbolo a una clase concreta.

container.bind(B).to(A);

El método .toService() se utiliza cuando deseas enlazar una interfaz o símbolo a un servicio que ya está enlazado en el contenedor. InversifyJS no creará una nueva instancia, sino que devolverá la misma instancia que estaba enlazada al servicio original.

container.bind(C).toService(B);