using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; namespace ZB.QueueSys.Common.Enum { public enum QsQueueStatusEnum { /// <summary> /// 启用 /// </summary> [Description("启用")] StartUsing = 1, /// <summary> /// 禁用 /// </summary> [Description("禁用")] NoUsing = 0, } }
using System.ComponentModel; using System.Reflection; namespace ZB.QueueSys.Common { public class EnumHelper { //定义一个用于保存静态变量的实例 private static EnumHelper instance = null; //定义一个保证线程同步的标识 private static readonly object locker = new object(); //构造函数为私有,使外界不能创建该类的实例 private EnumHelper() { } public static EnumHelper Instance { get { if (instance == null) { lock (locker) { if (instance == null) instance = new EnumHelper(); } } return instance; } } public string GetEnumDescription(System.Enum enumValue) { string value = enumValue.ToString(); FieldInfo field = enumValue.GetType().GetField(value); object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false); //获取描述属性 if (objs == null || objs.Length == 0) //当描述属性没有时,直接返回名称 return value; DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0]; return descriptionAttribute.Description; } //扩展方法,必须定义在静态类、静态方法 //public static string GetDescription(this System.Enum value) //{ // FieldInfo field = value.GetType().GetField(value.ToString()); // DescriptionAttribute attribute // = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) // as DescriptionAttribute; // return attribute == null ? value.ToString() : attribute.Description; //} } }