ActionFilterAttribute:何时使用OnActionExecuting与OnActionExecutingAsync?

时间:2016-01-26 22:01:11

标签: c# asp.net-web-api async-await

我创建了一个继承自LoggedAttribute的{​​{1}}类,并将登录方式放入System.Web.Http.Filters.ActionFilterAttributeOnActionExecuting方法中;我假设有一个用于异步调用,一个用于非异步调用,但似乎两者都在使用。那么我应该登录哪个?

更新

代码如下:

OnActionExecutingAsync

然后我将[Logged]属性应用到我的基本ApiController,我收到单个调用的重复日志条目。

2 个答案:

答案 0 :(得分:11)

回复并没有回答我的想法,

如果您需要在执行操作之前运行代码,则使用两者。

如果您还希望同时运行同步,请使用OnActionExecuting,否则请使用OnActionExecutingAsync(e.i。异步)。

答案 1 :(得分:5)

好吧,看起来每次请求都会调用OnActionExecuting。我把我的逻辑专门用在那个方法中,它似乎按照需要工作。