Saltar al contenido

Configuración de Ninject con Asp.Net MVC y Web Api

Puede darse el caso de que encuentres algún fallo con tu código o trabajo, recuerda probar siempre en un ambiente de testing antes subir el código al proyecto final.

Solución:

He escrito algunas ideas esenciales para ayudar a configurar Ninject con MVC y Web Api. Simplemente incluya los archivos:

  • https://gist.github.com/odytrice/5821087 (para MVC)
  • https://gist.github.com/odytrice/5842010 (para WebApi)

Para agregar enlaces para tipos concretos, solo colóquelos en el Load() método del MainModule. Puede crear tantos módulos como desee para mantener los enlaces organizados. pero también tendrás que agregarlos a la array que se devuelve en el Modules propiedad.

Luego agregue a la Application_Start() método

  • NinjectContainer.RegisterModules(NinjectModules.Modules) (para MVC)
  • NinjectHttpContainer.RegisterModules(NinjectHttpModules.Modules) (para API web)

Tenga en cuenta que puede utilizar el mismo NinjectModules.Modules para el registro de MVC y WebApi. Solo lo separé para mayor claridad.

ACTUALIZAR: Recuerde eliminar NinjectWebCommon.cs de su proyecto mientras carga y arranca un nuevo kernel en tiempo de ejecución que, lamentablemente, es solo para MVC.

ACTUALIZAR: También puedes usar

  • NinjectContainer.RegisterAssembly() (para MVC)
  • NinjectHttpContainer.RegisterAssembly() (para API web)

Esto escaneará su ensamblaje actual para todos los módulos. De esta manera, puede colocar sus módulos en cualquier lugar de su proyecto y quedará registrado.

Con MVC 5 y Web API 2.2 resolví este problema asegurándome de incluir los siguientes paquetes de NuGet:

  • Ninject.MVC5
  • Ninject.Web.WebApi.WebHost para la API web

Esto instaló otras dependencias de Ninject y me permitió RegisterServices mediante NinjectWebCommon.cs.

Después de buscar mucho, resulta que no podemos usar Ninject con API web y mvc normal. Es decir, tenemos que configurar los Repositorios por separado.

Luego encontré un buen artículo que explica cómo puede usar Ninject con asp.net mvc y web api: http://www.codeproject.com/Articles/412383/Dependency-Injection-in-asp-net-mvc4-and- webapi-us

Y ahora, no me sale el error y está funcionando 😀

Actualización 1:

También intente Escribir una implementación simple de inyección de dependencia en MVC 4 Web API con .NET Framework 4.5

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *