OnActionExecutedAsync 在 .Net 核心的 ActionFilterAttribute 中不可用
OnActionExecutedAsync Not available in ActionFilterAttribute in .Net core
我正在将动作过滤器属性从 .net framework 4.6 移植到 .net core 3.1。我在 .net 核心 ActionFilterAttribute 中注意到的一件事是,在 .net 核心中没有 OnActionExecutedAsync
方法。
ActionFilterAttribute 中的方法:-
public virtual void OnActionExecuted(ActionExecutedContext context);
public virtual void OnActionExecuting(ActionExecutingContext context);
public virtual Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next);
public virtual void OnResultExecuted(ResultExecutedContext context);
public virtual void OnResultExecuting(ResultExecutingContext context);
public virtual Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next);
我有几个异步方法需要在操作执行后执行。执行此操作的最佳做法是什么。
使用 OnActionExecutionAsync
,您可以在其中调用 next
委托,然后 运行 您自己的异步逻辑:
public override async Task OnActionExecutionAsync(
ActionExecutingContext context, ActionExecutionDelegate next)
{
var actionExecutedContext = await next();
// .. Your awaits here.
}
next
委托returnsActionExecutedContext
.
我正在将动作过滤器属性从 .net framework 4.6 移植到 .net core 3.1。我在 .net 核心 ActionFilterAttribute 中注意到的一件事是,在 .net 核心中没有 OnActionExecutedAsync
方法。
ActionFilterAttribute 中的方法:-
public virtual void OnActionExecuted(ActionExecutedContext context);
public virtual void OnActionExecuting(ActionExecutingContext context);
public virtual Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next);
public virtual void OnResultExecuted(ResultExecutedContext context);
public virtual void OnResultExecuting(ResultExecutingContext context);
public virtual Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next);
我有几个异步方法需要在操作执行后执行。执行此操作的最佳做法是什么。
使用 OnActionExecutionAsync
,您可以在其中调用 next
委托,然后 运行 您自己的异步逻辑:
public override async Task OnActionExecutionAsync(
ActionExecutingContext context, ActionExecutionDelegate next)
{
var actionExecutedContext = await next();
// .. Your awaits here.
}
next
委托returnsActionExecutedContext
.