2012-04-02 14 views
10

Estoy aprendiendo a usar la inyección de dependencia con ninject. La mayoría de las propiedades y métodos son bastante intuitivos, uno que me tiene aunque es Kernel.Inject (instancia);Qué hace Kernel.Inject (instancia); en realidad?

¿Qué hace el método Inject en realidad, ya que no devuelve nada. He mirado alrededor pero buscar un método llamado "inyectar" en un contenedor de inyección de dependencia es una pesadilla, no puedo encontrar ninguna referencia al método específicamente.

Respuesta

15

Kernel.Inject(instance) inyectará dependencias en un objeto ya existente.

Es por eso que devuelve vacío porque toma la instancia del objeto de parámetro y comienza a investigar sus métodos y los generadores de propiedades que buscan el atributo [Inject]. Luego los llamará con las instancias resueltas de sus tipos de parámetros. (esto se llama inyección de método o propiedad)

Entonces cuando la inyección del contructor no es es posible , puede Kernel.Inject completar sus dependencias para una instancia determinada.

Puede leer más sobre esto aquí: Ninject Injection Patterns

+0

buena explicación sencilla, ¡Salud! – deanvmc

+0

Comedia tipográfica "inyectar las deidades". ¡Con Ninject tu código será indecente! –

+0

@SimonHalsey gracias, reparado :) – nemesv

Cuestiones relacionadas