WebAPI过滤器:任何stub Filter.Order的方法

本文关键字:Order 方法 Filter stub 过滤器 任何 WebAPI | 更新日期: 2023-09-27 17:52:50

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

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

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

对于MVC堆栈,有一个Order属性在那里我们可以做

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

StrathWeb上有一篇关于在WebAPI中添加Order支持的文章,这篇文章似乎过时了,对我来说根本无法编译。

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

WebAPI过滤器:任何stub Filter.Order的方法

本文中的解决方案运行良好并可编译。

请确保使用正确的名称空间,因为有些类在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属性的唯一方法)。