如何显示枚举显示属性的名称

这是我的枚举。

public enum ContractType { [Display(Name = "Permanent")] Permanent= 1, [Display(Name = "Part Time")] PartTime= 2, } 

我尝试使用下面的代码获取显示名称。

  string x = Enum.GetName(typeof(ContractType), 2); 

但它始终是返回“ PartTime ”。 其实我想得到display属性的名称。 对于上面的例子,x应该被指定为Part Time

我看到有大量代码的解决方案。 这不是一个简单的/一线解决方案吗?

请告诉我一个方向。

鉴于枚举

 public enum ContractType { [Display(Name = "Permanent")] Permanent= 1, [Display(Name = "Part Time")] PartTime //Automatically 2 you dont need to specify } 

自定义方法获取数据注释显示名称。

 //This is a extension class of enum public static string GetEnumDisplayName(this Enum enumType) { return enumType.GetType().GetMember(enumType.ToString()) .First() .GetCustomAttribute() .Name; } 

调用GetDisplayName()

 ContractType.Permanent.GetEnumDisplayName(); 

希望这可以帮助 :)