Utilizando Ninject con Asp.NET Web API Beta ApiController

Estoy atascado. Estaba usando el método descrito aquí para wcf web api p6Ninject trabajando con WCF Web API Preview 5, sin embargo, las cosas son bastante diferentes con la implementación de mvc en la versión beta. Hay un buen artículo aquíhttp: //www.asp.net/web-api/overview/extensibility/using-the-web-api-dependency-resolve que habla sobre la construcción de su propio solucionador de dependencias personalizado, sin embargo, me gustaría usar la misma implementación que estoy usando para mis controladores de vista mvc ... por ejemplo. Ninject También probé algunas cosas según el ejemplo de IoC Unity en el artículo, pero todavía no ha resultado nada. Cualquier ayuda que me señale en la dirección correcta sería muy apreciada. Voy a seguir cavando por mi cuenta también. ¡Gracias por adelantado

Aquí es donde estoy. Estaba usando WebActivator para arrancar el código, pero desde entonces lo coloqué en Application_Start () solo para sacar una cosa más de la ecuación.

    protected void Application_Start()
    {
        var kernel = new StandardKernel(new MyNinjectModule());
        GlobalConfiguration.Configuration.ServiceResolver.SetResolver(new NinjectDependencyResolver(kernel));
    }

Y estoy recibiendo el siguiente error:
El tipo Ninject.Web.Mvc.NinjectDependencyResolver no parece implementar Microsoft.Practices.ServiceLocation.IServiceLocator.
Nombre del parámetro: commonServiceLocator

Encontró la solución
Tal vez haya / habrá una forma más elegante, pero ahora está funcionando para mí. También estoy agregando mi controlador de mensajes personalizado aquí también.

[assembly: WebActivator.PreApplicationStartMethod(typeof(MyApp.AppStart.ApiBootstrapper), "Start")]
namespace MyApp.AppStart
{
    public class ApiBootstrapper
    {
        public static void Start()
        {
            var kernel = new StandardKernel(new MyNinjectModule());
            var resolver = new NinjectDependencyResolver(kernel);
            GlobalConfiguration.Configuration.ServiceResolver.SetResolver(resolver.GetService, resolver.GetServices);
            GlobalConfiguration.Configuration.MessageHandlers.Add(new ApiAuthHandler());
        }
    }
}

Respuestas a la pregunta(10)

Su respuesta a la pregunta