我想使用Ninject作为当前项目的IoC容器以及通过IIS上的OWIN流水线化的MVC5 / WebApi2.但是我很难弄清楚有关Ninject扩展的清晰图片,例如:哪些是这种设置的首选,哪些是不推荐的,哪些是实际需要的,哪些只提供一两个可能根本不需要的类.
所以我们得到……
> Ninject.Web.Common
> Ninject.Web.Common.OwinHost
> Ninject.Web.Common.WebHost
> Ninject.MVC5
> WebActivatorEx(不是Ninject的一部分,但是依赖)
> Ninject.Web.WebApi.OwinHost(WebApi 2的Ninject OWIN主机)
> Ninject.Web.WebApi(WebApi 2的Ninject集成)
我特别困惑,因为对于MVC,我习惯于Ninject.MVC5,它需要Ninject.Web.Common和WebActivatorEx,但是当使用OWIN时,使用Ninject.Web.Common.OwinHost对Ninject进行流水线操作似乎是标准方法.然后,Ninject.Web.Common.OwinHost似乎与OWIN v3不兼容,而Ninject.Web.WebApi.Owin(对于WebApi 2)已经是.此外,许多软件包都是由一个名为Remo Gloor的开发人员维护的(为他提供了一个传统的MVC3软件包!),但“官方”软件包由“Ninject Project Contributors”维护.
请问,任何人都可以帮助我通过这个扩展丛林来获得正确的设置吗?
最佳答案 以下2个链接概述了在OWIN / IIS中托管WebApi部分以及使用Ninject的要求.
> https://github.com/ninject/Ninject.Web.Common/wiki/Setting-up-a-OWIN-WebApi-application
> https://github.com/ninject/Ninject.Web.Common/wiki/Setting-up-an-IIS-hosted-web-application