Jer*_*acs 9 c# async-await asp.net-web-api
我创建了一个LoggedAttribute继承自System.Web.Http.Filters.ActionFilterAttribute并登录OnActionExecuting和OnActionExecutingAsync方法的类; 我假设有一个用于异步调用,一个用于非异步调用,但似乎两者都在使用.那么我应该登录哪一个?
UPDATE
代码如下:
public sealed class LoggedAttribute : ActionFilterAttribute
{
private readonly ILog _logger;
public LoggedAttribute(ILogManager logManager)
{
_logger = logManager.GetLogger<LoggedAttribute>();
}
public LoggedAttribute() : this(new LogManager()) {}
public override void OnActionExecuting(HttpActionContext actionContext)
{
//logging logic goes here
base.OnActionExecuting(actionContext);
}
public override async Task OnActionExecutingAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
{
//logging logic goes here
await base.OnActionExecutingAsync(actionContext, cancellationToken);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我将[Logged]属性应用到我的基本ApiController,我得到单个调用的重复日志条目.
A77*_*A77 11
答复没有回答我的想法,
如果您需要在执行操作之前运行代码,则使用两者.
如果你想要它同步运行同时使用OnActionExecuting,否则使用OnActionExecutingAsync(ei异步).
| 归档时间: |
|
| 查看次数: |
5340 次 |
| 最近记录: |