【Ninject】WebApi项目使用Ninject

WebApi项目的依赖注入需要使用System.Web.Http.Dependencies里的IDependencyResolver来实现,和Mvc的IDependencyResolver是不一样的,所以需要实现的Resolver不一样。虽然了解了大概怎么写,但是始终没能让自己重写的Resolver启动,并且看别人写好的还解决了其他的一些注入问题。于是,决定还是用Ninject下面fork的remogloor/Ninject.Web.WebApi,免得浪费时间折腾轮子了。

Mvc的配置

环境

WebApi2.Net Framework 4.5VS2015

使用方法

  1. 添加引用,使用NuGet安装以下两个包
  • Ninject
  • Ninject.Web.WebApi

查看引用会发现附赠了 Ninject.Web.CommonNinject.Web.Common.WebHostNinject.Web.WebApi.WebHost 三个包。

  1. 然后修改在App_Start下NinjectWebCommonRegisterServices(),在里面后面加上自己的注入bind,如:
    1
    2
    3
    4
    5
    private static void RegisterServices(IKernel kernel)
    {
    kernel.Load(Assembly.GetExecutingAssembly());
    kernel.Bind<IUserRepository>().To<UserRepository>();
    }

以上。使用起来很简单。就是封了一层,有些东西需要自己看源码理解了。