Изменить результат после выполнения ActionExecutionDelegate - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь создать глобальный атрибут обработки исключений для моих веб-API, написанный на ASP.Net Core, и для этого использую интерфейс IAsyncActionFilter.Я вызываю ActionExecutionDelegate и затем проверяю исключения в его результате.Когда я сталкиваюсь с исключением, я пытаюсь перенаправить результат или вручную написать в HttpResponse, и именно здесь я сталкиваюсь с реальной проблемой.В следующем примере:

var resultContext = await next();

любой код, который пытается изменить ответ после сбоя этого кода.Я попробовал следующие подходы:

 resultContext.Result = new ContentResult() {...}
 resultContext.HttpContext.Response.WriteAsync(.....)

Я также пытался сделать то же самое с контекстом действия перед выполнением из любопытства, но, как и ожидалось, это также не удалось.

В случае, если вам нужно знать фактическую сигнатуру метода для OnActionExecutionAsync метода, она выглядит следующим образом:

Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
...