Return asp 核心中的控制器和网络操作信息 api

Return info of controller and actions with web api in asp core

我需要 return 在 asp 核心中使用网络 api 的操作和控制器信息。

我有这个控制器:

    [BreadCrumb(Order = 0)]
    [DisplayName("سطح دسترسی پویا")]
    [Route("api/[controller]")]
    public class ValuesController : Controller
    {
        // GET api/values
        [DisplayName("برگشت اطلاعات")]
        [BreadCrumb(Order = 1)]
        [HttpGet]
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }
     }

现在我需要 return DisplayName 和所有信息。我该怎么做?

您可以使用以下代码:

var controllerInfo = ControllerContext.ActionDescriptor.ControllerTypeInfo.CustomAttributes;
var methodInfo = ControllerContext.ActionDescriptor.MethodInfo.CustomAttributes;

你可以试试:

[DisplayName("Controller Display Name")]
[Route("api/[controller]")]
public class ValuesController : Controller
{
    // GET api/values
    [HttpGet]
    [DisplayName("Action Display Name")]
    public IEnumerable<string> Get()
    {
        var ControllerDisplayName = string.Empty;
        var ActionsDisplayName = string.Empty;

        var ControllerAttributes = ControllerContext.ActionDescriptor.ControllerTypeInfo.GetCustomAttributes(typeof(DisplayNameAttribute), true);
        if (ControllerAttributes.Length > 0)
        {
            ControllerDisplayName = ((DisplayNameAttribute)ControllerAttributes[0]).DisplayName;
        }

        var ActionAttributes = (ControllerContext.ActionDescriptor.MethodInfo.GetCustomAttributes(typeof(DisplayNameAttribute), false));
        if (ActionAttributes.Length > 0)
        {
            ActionsDisplayName = ((DisplayNameAttribute)ActionAttributes[0]).DisplayName;
        }

        return new string[] { ControllerDisplayName, ActionsDisplayName };
    }
}