Asp.net mvc 动作方法mvc的显示名称数据注释

Asp.net mvc 动作方法mvc的显示名称数据注释,asp.net-mvc,data-annotations,Asp.net Mvc,Data Annotations,我想为所有动作方法创建友好的名称 [LogActionFilter] public class ServiceController : ApiController { [DisplayName("User log in")] public object Login() { //my logic for login and returns object

我想为所有动作方法创建友好的名称

[LogActionFilter]
    public class ServiceController : ApiController
    {
    [DisplayName("User log in")]
            public object Login()        
            {
                //my logic for login and returns object 
            }
    }
在action filter属性中,我想获取此操作的显示名称

public class LogActionFilter : ActionFilterAttribute
    {
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            var actionName = actionContext.Request.RequestUri.AbsolutePath.Split('/').Last();
            //var actionFriendlyName = getDisplayName(actionName); How to get display name?
        }
    }

如何获取
DisplayName
属性的值?

我使用此函数获取方法的属性:

public static T GetAttributeFrom<T>(object instance, string    propertyName) where T : Attribute
           {
               var attrType = typeof(T);
               var property = instance.GetType().GetMethod(propertyName);
               return (T)property.GetCustomAttributes(attrType, false).First();
           }
公共静态T GetAttributeFrom(对象实例,字符串propertyName),其中T:Attribute { var attrType=typeof(T); var property=instance.GetType().GetMethod(propertyName); return(T)property.GetCustomAttributes(attrType,false).First(); } 用法:

var actionName = actionContext.Request.RequestUri.AbsolutePath.Split('/').Last();
var displayNameAttribute = GetAttributeFrom<DisplayNameAttribute>(new ServiceController(), actionName);
var methodFriendlyName = displayNameAttribute.DisplayName;
var actionName=actionContext.Request.RequestUri.AbsolutePath.Split('/').Last();
var displayNameAttribute=GetAttributeFrom(新的ServiceController(),actionName);
var methodFriendlyName=displayNameAttribute.DisplayName;

为什么投票被否决?请简要说明。您可以使用反射(参考示例)。但是不清楚你想在这里做什么,或者你将如何使用它。@Irfanyusan如果我没有投反对票,但如果你在任何问题上悬停在“投反对票”按钮上,它会解释应该投反对票的原因。无论如何,您为什么要获取此名称,您打算在操作筛选器中如何使用它?不清楚目的是什么。此外,这些数据注释用于字段(即类的属性),而不是方法。