Что такое события жизненного цикла контроллера OData OnExecuting / OnExecuted? - PullRequest
0 голосов
/ 23 октября 2018

Чтобы выполнить диагностику, какие эквивалентные действия следует переопределить для этих двух событий в контроллере OData:

  1. до начала выполнения действия.
  2. для выполненного действия

Я мог найти только одно:

public class BaseODataController : ODataController
{
    public override Task<HttpResponseMessage> ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)
    {
        return base.ExecuteAsync(controllerContext, cancellationToken);
    }
}

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

1 Ответ

0 голосов
/ 23 октября 2018

Сначала необходимо определить фильтр:

public class SampleActionFilter : Attribute, IActionFilter
{
    public void OnActionExecuting(ActionExecutingContext context)
    {
        // do something before the action executes
    }

    public void OnActionExecuted(ActionExecutedContext context)
    {
        // do something after the action executes
    }
}

Затем применить атрибут для действия в контроллере:

[Route("api/[controller]")]
[ApiController]
public class FooController : ODataController
{
    [SampleActionFilter]
    [HttpGet("SomeResource")]
    public IActionResult SomeResource()
    {
        return Content("Successful access to resource - header should be set.");
    }
}

Вы можете проверить эту ссылку: https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/filters?view=aspnetcore-2.1

Дайте мне знать, если это полезно.

...