我有一个中间件,每次对我的 API 发出请求时都会调用该中间件。我想记录路由模板以及来自该中间件的请求的持续时间。如何在我的中间件代码中获取路由模板?路由模板类似于“/products/{productId}”。
这是我如何让它发挥作用的。我在过滤器 OnActionExecuting 方法中获取路由模板并将其添加到 HttpContext。稍后我从中间件内的 HttpContext 访问它,因为我可以访问中间件内的 HttpContext。
public class LogActionFilter : IActionFilter
{
public LogActionFilter()
{
}
public void OnActionExecuted(ActionExecutedContext context)
{
}
public void OnActionExecuting(ActionExecutingContext context)
{
context.HttpContext.Items.Add("RouteTemplate", context.ActionDescriptor.AttributeRouteInfo.Template);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)