ActionExecutingContext ActionDescriptor不包含ActionName和MethodInfo

Jim*_*iss 5 c# asp.net asp.net-core

如下所示,在我的ActionFilter中,我尝试获取ActionExecutingContext.ActionDescriptor的ActionName和MethodInfo.但编译器说ActionDescriptor不包含ActionName和MethodInfo的定义.但是,如果我调试应用程序,我可以看到,ActionDescriptor包含这些属性(请参阅下面的图片).我正在使用ASP .NET Core,我不知道问题出在哪里.

在此输入图像描述 在此输入图像描述

Cod*_*shi 6

您需要将其强制转换为ControllerActionDesriptor,因为该类具有您需要的属性.

var descriptor = context.ActionDescriptor as ControllerActionDescriptor;
var actionName = descriptor.ActionName;
var methodInfo = descriptor.MethodInfo;
Run Code Online (Sandbox Code Playgroud)

  • @CodingYoshi ,您如何确定需要在不使用 StackOverflow 的情况下将其转换为 ControllerActionDescriptor ?我可以在运行时使用此代码,但有没有办法在设计时使用它?System.Type t = context.ActionDescriptor.GetType(); (2认同)