我想使用 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 项目贡献者”维护。

    拜托,任何人都可以帮助我通过这个扩展丛林来获得正确的设置吗?

    最佳答案

    以下 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
  • 关于c# - Ninject for MVC5, WebApi2 使用 OWIN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25875826/

    10-12 03:48
    查看更多