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