OData .NET Web API问题-调用控制器操作后调用过滤器验证

时间:2018-09-28 23:13:37

标签: odata

我正在使用Asp.NET OData v7.0(Microsoft.AspNet.OData)向我们的旧版Web API添加OData支持。 我试图通过覆盖EnableQueryAttribute来覆盖默认的Filter验证器:

public class MyEnableQueryAttribute : EnableQueryAttribute
{
    public override void ValidateQuery(HttpRequestMessage request, ODataQueryOptions queryOptions)
    {
        if (queryOptions.Filter != null)
        {
            queryOptions.Filter.Validator = new MyFilterValidator(new DefaultQuerySettings());
        }
       base.ValidateQuery(request, queryOptions);
    }
}

public class MyFilterValidator : FilterQueryValidator
{
   public override void Validate(...)
   {
      // my custom validation code
   }
} 

[MyEnableQuery]
public async Task<IEnumerable> Get(ODataQueryOptions<Product> queryOptions)

但是在调试时,我看到调用Get()方法后调用了valiator方法。我希望在调用操作之前应先调用验证器。我的代码有什么问题吗?

0 个答案:

没有答案