使用Ninject绑定WebApi筛选器属性



我目前在我的asp.net webapi项目中使用ninject.mvc3,它运行良好。我现在正在尝试绑定筛选器属性,但在使用NinjectWebCommon静态类方法时,IKernel接口中缺少BindFilterBindHttpFilter。如果我添加Ninject.Web.WebApi包,它就在那里,但项目没有运行(这里有问题,解决方案说Ninject.Web.WebApi不推荐使用),所以我将其删除了。

我也完全遵循了这个githubwiki,但仍然没有找到this.BindFilter。我有最新的裸体包;Ninject(3.0.1.10)、Ninject.Web.Common(3.0.0.7)、Ninbject.MVC3(3.0.0.6)

BindFilter或BindHttpFilter在哪里?有什么变化吗?如何在asp.net web api中绑定过滤器属性?有太多的库和项目,文档并没有告诉你什么是当前正在工作的库和不推荐使用的库。。。。

您使用的包是正确的,因为它们还没有包括BindHttpFilter。BindHttpFilter扩展方法来自https://github.com/remogloor/Ninject.Web.WebApi它目前不适用于WebApi的发布版本,因为它是针对测试版WebApi编写的。为了向WebApi过滤器中注入您需要的BindHttpFilter,您不能将WebApi筛选器传递到BindFilter方法中。

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

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

在我的例子中,我试图实现一个日志过滤器,所以我只想创建一个静态方法,我可以从过滤器中调用它,直到注入支持可用。

我也有同样的问题。1) 我使用命令从PM控制台安装了最新的(但不稳定的)用于Web.Api的Ninject

PM> Install-Package Ninject.Web.WebApi -Pre

2) 然后我将其添加到NinjectWebCommon.cs 的"使用"部分

using Ninject.Web.WebApi.FilterBindingSyntax;

在这些步骤之后,我的IKernel有了BindHttpFilter方法。运行良好

最新更新