Web API2 NinjectWebCommon.cs do not appear

后端 未结 3 1059
野趣味
野趣味 2020-12-14 09:50

I am doing an Empty Web API in Visual Studio 2013 Framework 4.5. Obviously NinjectWebCommon.cs do not appear.

I installed via Nuget,

3条回答
  •  盖世英雄少女心
    2020-12-14 10:41

    Tested with latest Ninject: Create an Empty Web Application and select the checkboxes for Mvc and Web Api

    Install Nuget Package: Ninject.Web.WebApi.WebHost

    Install Nuget Package: WebActivatorEx

    Create a class in App_Start named NinjectWebCommon.cs

     [assembly: WebActivatorEx.PreApplicationStartMethod(typeof(NinjectWebCommon), "Start")]
     [assembly: WebActivatorEx.ApplicationShutdownMethodAttribute(typeof(NinjectWebCommon), "Stop")]
    
     namespace 
     {
         public static class NinjectWebCommon
         {
             private static readonly Bootstrapper bootstrapper = new Bootstrapper();
    
             public static void Start()
             {
                 DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
                 DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
                 bootstrapper.Initialize(CreateKernel);
             }
    
             public static void Stop()
             {
                 bootstrapper.ShutDown();
             }
    
             private static IKernel CreateKernel()
             {
                 var kernel = new StandardKernel();
                 kernel.Bind>().ToMethod(ctx => () => new Bootstrapper().Kernel);
                 kernel.Bind().To();
    
                 RegisterServices(kernel);
                 return kernel;
             }
             private static void RegisterServices(IKernel kernel)
             {
               //kernel.Bind().ToMethod(ctx => new Repo("Ninject Rocks!"));
             }
         }
     }
    

    Configure your DI in RegisterServices

    Add dependency to Mvc or Web Api Controllers constructor parameters

    Hope it helps, thanks.

提交回复
热议问题