MVC4 WebAPI过滤器:以任何方式存根Filter.Order?

时间:2013-01-14 16:20:48

标签: c# asp.net-mvc-4 asp.net-web-api custom-attributes action-filter

我在WebAPI控制器中添加了两个过滤器:

[FooFilter]
[BarFilter]
public IQueryable<SomeEntity> GetSomething()
{
    ...

不幸的是,它们是以随机顺序执行的。

对于MVC堆栈,there's the Order property可以做的事情

[FooFilter(Order = 1)]
[BarFilter(Order = 2)]
public IQueryable<SomeEntity> GetSomething()
{
    ...

关于向WebAPI添加Order支持an article on StrathWeb,这似乎过时了,不会为我编译。

SO的C#向导是否有关于如何为WebAPI实现/存根Order属性的任何建议?

1 个答案:

答案 0 :(得分:2)

文章的解决方案运行良好并编译。

请确保使用正确的命名空间,因为某些类在System.Web.MvcSystem.Web.Http命名空间下具有相同的名称。

这些是您应该引用的完全限定名称:

System.Web.Http.Filters.IFilter
System.Web.Http.Filters.ActionFilterAttribute
System.Web.Http.Filters.FilterScope
System.Web.Http.Filters.FilterInfo
System.Web.Http.Filters.IFilterProvider

此外,请记住,一旦实施,您的过滤器需要开始继承BaseActionFilterAttribute而不是原始ActionFilterAttribute(这是您获得Position属性的唯一方式)。< / p>