Inyección de propiedades en ASP.NET MVC usando Ninject

En un artículo anterior conocimos como implementar el contenedor de inyección de dependencias Ninject en un proyecto ASP.NET MVC y como hacer una inyección de dependencias por constructor. Ahora en este artículo veremos como hacer una inyección de propiedades, en un ejemplo muy similar al que ya vimos para el contenedor Unity.

El primer paso será crear un proyecto ASP.NET MVC y adicionar mediante Nuget el paquete de Ninject. Si no sabes bien como hacerlo, te invito a visitar mi post anterior, donde está con mayor detalle.

Luego de esto, vamos a crear una interface muy sencilla de ejemplo, con el siguiente código:

public interface IAnimal
{
    string Sound();
}

Y luego crearemos una clase que implemente la interface anterior, que se verá así:

public class Cat : IAnimal
{
    public string Sound()
    {
        return "Meow!";
    }
}

Posteriormente, adicionamos un controlador MVC con el siguiente código:

public class AnimalsController : Controller
{
    [Inject]
    public IAnimal Animal { getset; }
        
    // GET: Animals
    public ActionResult Index()
    {
        ViewBag.AnimalSound = Animal.Sound();
 
        return View();
    }
}

En el código anterior, hay que destacar el uso del atributo [Inject] para la propiedad Animal. Este atributo es el que le permitirá identificar a Ninject que debe inyectar una clase a dicha propiedad. Para esto precisamente, no debemos olvidar modificar el código del método RegisterServices que se encuentra en la clase NinjectWebCommon de la carpeta App_Start en el proyecto ASP.NET MVC, el cual deberá verse así:

private static void RegisterServices(IKernel kernel)
{
    kernel.Bind<IAnimal>().To<Cat>();
}

Por último, adicionaremos una sencilla vista que muestre el resultado de la acción que incluimos en nuestro controlador:

@{
    ViewBag.Title = "Index";
}
<br />
 
Sound: @ViewBag.AnimalSound

Ahora si, ejecutamos el sitio web y vemos el resultado de la inyección de propiedades con Ninject:

ninjectprop_01

Bien, es todo por este artículo. No olvides dejar tus comentarios o inquietudes sobre el tema.

Puedes descargar el código fuente usado desde mi cuenta de GitHub.

ironcat

Anuncios

2 Responses to Inyección de propiedades en ASP.NET MVC usando Ninject

  1. Gracias por tus articulos son muy claros y precisos para un novato como yo

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: