【问题标题】:ActionExecutingContext ActionDescriptor doesn't contain ActionName and MethodInfoActionExecutingContext ActionDescriptor 不包含 ActionName 和 MethodInfo
【发布时间】:2017-06-23 22:35:42
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net asp.net-core


    【解决方案1】:

    您需要将其转换为 ControllerActionDescriptor,因为该类具有您需要的属性。

    var descriptor = context.ActionDescriptor as ControllerActionDescriptor;
    var actionName = descriptor.ActionName;
    var methodInfo = descriptor.MethodInfo;
    

    【讨论】:

    • @CodingYoshi ,如何确定是否需要将其转换为 ControllerActionDescriptor 而不使用 StackOverflow?我可以在运行时使用此代码,但有没有办法在设计时做到这一点? System.Type t = context.ActionDescriptor.GetType();
    • 拯救我的一天!谢谢
    猜你喜欢
    • 2016-01-10
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 2013-01-30
    • 2012-10-21
    • 1970-01-01
    • 2014-01-22
    • 2011-09-26
    相关资源
    最近更新 更多