为了进行诊断,在 OData Controller 中要覆盖这两个事件的等效操作是什么:
- 在操作开始执行之前。
- 执行操作
我只能找到一个:
public class BaseODataController : ODataController
{
public override Task<HttpResponseMessage> ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)
{
return base.ExecuteAsync(controllerContext, cancellationToken);
}
}
最重要的是,一旦我们从操作返回控制权,就会应用查询过滤器,在生命周期事件中,我们可以测量诊断:例如方法执行所花费的时间。
最佳答案
首先,您需要定义一个过滤器:
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
}
}
然后在 Controller 中应用操作属性:
[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://learn.microsoft.com/en-us/aspnet/core/mvc/controllers/filters?view=aspnetcore-2.1
让我知道是否有用。
关于c# - 什么是 OData Controller 生命周期事件 OnExecuting/OnExecuted?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52942102/