使用Ninject绑定WebApi过滤器属性

Sha*_*ean 6 ninject asp.net-web-api

我目前在我的asp.net webapi项目中使用ninject.mvc3,它工作正常.现在我想结合过滤器属性,但BindFilterBindHttpFilter从缺少IKernel使用接口时,NinjectWebCommon静态类方法.如果我添加了Ninject.Web.WebApi包,那么它在那里但项目没有运行(问题在这里,解决方案说不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中绑定过滤器属性?有这么多的库和项目,文档没有告诉你当前工作的是什么以及什么是弃用的....

IML*_*viu 5

您使用的软件包是正确的,因为它们还不包含BindHttpFilter.BindHttpFilter扩展方法来自https://github.com/remogloor/Ninject.Web.WebApi,它目前不适用于WebApi的发布版本,因为它是针对beta WebApi版本编写的.为了注入WebApi过滤器,您需要BindHttpFilter,您不能将WebApi过滤器传递给BindFilter方法.

这是https://github.com/ninject/Ninject.Web.WebApi/pull/1似乎是我可以找到的有关更新状态的最新信息.

你也可以尝试另一个NuGet包http://nuget.org/packages/Ninject.Web.WebApi-rc但我有一些错误,现在不记得究竟是什么错误.无论如何,在阅读了上述拉动请求的讨论后,我放弃了这个包.

在我的情况下,我正在尝试实现一个日志过滤器,所以我只是创建一个静态方法,我可以从过滤器调用,直到注入支持可用.