asp.net-web-api – 如何记录webapi中控制器中执行的操作方法
发布时间:2020-12-16 03:49:24 所属栏目:asp.Net 来源:网络整理
导读:在WebAPI中,无论如何都要记录使用动作过滤器调用或执行的控制器的动作方法的名称.我正在使用RouteData属性,如下所示,但操作值不包含任何值.有什么办法可以在过滤器中获取操作名称. public class LogActionFilter : ActionFilterAttribute{ public override v
在WebAPI中,无论如何都要记录使用动作过滤器调用或执行的控制器的动作方法的名称.我正在使用RouteData属性,如下所示,但操作值不包含任何值.有什么办法可以在过滤器中获取操作名称.
public class LogActionFilter : ActionFilterAttribute { public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) { Log(actionExecutedContext.ActionContext.RequestContext.RouteData); base.OnActionExecuted(actionExecutedContext); } private void Log(System.Web.Http.Routing.IHttpRouteData httpRouteData) { var controllerName = httpRouteData.Values["controller"]; var actionName = httpRouteData.Values["action"]; var message = String.Format("controller:{0},action:{1}",controllerName,actionName); Debug.WriteLine(message,"Action Filter Log"); } } 解决方法
您可以在actionExecutedContext.ActionContext.ActionDescriptor.ActionName属性(字符串)中找到操作名称.
如果您需要的信息多于字符串名称,您还可以将该ActionDescriptor强制转换为ReflectedHttpActionDescriptor并获取所调用的MethodInfo的实例. var reflectedActionDescriptor = actionExecutedContext.ActionContext.ActionDescriptor as ReflectedHttpActionDescriptor; //inspect reflectedActionDescriptor.MethodInfo here (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net – 如何以WPF格式捕获网页的按钮点击事件
- asp.net-mvc-3 – html.TextBoxFor和html.Textbo
- asp.net中XML如何做增删改查操作
- asp.net – 自定义OWIN / Katana UserManager工厂
- 更改ASP.NET缓存项到期的频率?
- .net – Razor RTM中的声明性助手方法
- entity-framework – 使用F#和ASP.NET MVC保存EF
- asp.net-mvc – 使用哪个:“AcceptGet,AcceptPo
- asp.net – .NET MVC应用程序中可重用性的单位是
- asp.net-core – 检查动作过滤器中的属性
热点阅读