我在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
属性的任何建议?
答案 0 :(得分:2)
文章的解决方案运行良好并编译。
请确保使用正确的命名空间,因为某些类在System.Web.Mvc
和System.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>