我目前在我的 asp.net webapi 项目中使用 ninject.mvc3,它工作正常。我现在尝试绑定(bind)过滤器属性,但使用 NinjectWebCommon
时,IKernel
接口(interface)中缺少 BindFilter
和 BindHttpFilter
静态类方法。如果我添加 Ninject.Web.WebApi
包,它就在那里,但项目无法运行(问题 here ,解决方案说 Ninject.Web.WebApi
已弃用)所以我把它删除了。
我也关注了这个github wiki仍然没有找到 this.BindFilter
。我有最新的 nuget 包; Ninject (3.0.1.10)、Ninject.Web.Common (3.0.0.7)、Ninject.MVC3 (3.0.0.6)
BindFilter 或 BindHttpFilter 在哪里?有什么改变吗?如何在 asp.net web api 中绑定(bind)过滤器属性?有如此多的库和项目,文档并没有告诉您当前正在使用的库和项目以及已弃用的库和项目......
最佳答案
您使用的包是正确的,因为它们还不包含 BindHttpFilter。 BindHttpFilter扩展方法来自https://github.com/remogloor/Ninject.Web.WebApi目前不适用于 WebApi 的发布版本,因为它是针对 Beta WebApi 版本编写的。为了注入(inject) WebApi 过滤器,您需要 BindHttpFilter,但不能将 WebApi 过滤器传递到 BindFilter 方法中。
这是https://github.com/ninject/Ninject.Web.WebApi/pull/1似乎是我能找到的有关更新状态的最新信息。
您还可以尝试另一个 NuGet 包 http://nuget.org/packages/Ninject.Web.WebApi-rc但我有一些错误,现在不记得到底是什么错误了。无论如何,在阅读了上述拉取请求的讨论后,我放弃了这个包。
就我而言,我正在尝试实现一个日志过滤器,因此我将创建一个可以从过滤器调用的静态方法,直到注入(inject)支持可用为止。
关于ninject - 使用Ninject绑定(bind)WebApi过滤器属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12757419/