1 public static class EnumHelper
2 {
3 /// <summary>
4 /// 获取枚举变量值的 Description 属性
5 /// </summary>
6 /// <param name="obj">枚举变量</param>
7 /// <param name="isTop">是否改变为返回该类、枚举类型的头 Description 属性,而不是当前的属性或枚举变量值的 Description 属性</param>
8 /// <returns>如果包含 Description 属性,则返回 Description 属性的值,否则返回枚举变量值的名称</returns>
9 public static string GetDescription(this object obj, bool isTop)
10 {
11 if (obj == null)
12 {
13 return string.Empty;
14 }
15 try
16 {
17 Type _enumType = obj.GetType();
18 DescriptionAttribute dna = null;
19 if (isTop)
20 {
21 dna = (DescriptionAttribute)Attribute.GetCustomAttribute(_enumType, typeof(DescriptionAttribute));
22 }
23 else
24 {
25 FieldInfo fi = _enumType.GetField(Enum.GetName(_enumType, obj));
26 dna = (DescriptionAttribute)Attribute.GetCustomAttribute(
27 fi, typeof(DescriptionAttribute));
28 }
29 if (dna != null && string.IsNullOrEmpty(dna.Description) == false)
30 return dna.Description;
31 }
32 catch
33 {
34 }
35 return obj.ToString();
36 }
37
38 /// <summary>
39 /// 将枚举转成List
40 /// </summary>
41 /// <typeparam name="T"></typeparam>
42 /// <returns></returns>
43 public static List<EnumberEntity> EnumToList<T>()
44 {
45 List<EnumberEntity> list = new List<EnumberEntity>();
46
47 foreach (var e in Enum.GetValues(typeof(T)))
48 {
49 EnumberEntity m = new EnumberEntity();
50 object[] objArr = e.GetType().GetField(e.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), true);
51 if (objArr != null && objArr.Length > 0)
52 {
53 DescriptionAttribute da = objArr[0] as DescriptionAttribute;
54 m.Desction = da.Description;
55 }
56 m.EnumValue = Convert.ToInt32(e);
57 m.EnumName = e.ToString();
58 list.Add(m);
59 }
60 return list;
61 }
62 }
63
64 public class EnumberEntity
65 {
66 /// <summary>
67 /// 枚举的描述
68 /// </summary>
69 public string Desction { set; get; }
70
71 /// <summary>
72 /// 枚举名称
73 /// </summary>
74 public string EnumName { set; get; }
75
76 /// <summary>
77 /// 枚举对象的值
78 /// </summary>
79 public int EnumValue { set; get; }
80
81 }
定义枚举:
1 /// <summary>
2 /// 操作类型
3 /// d:2019-12-4
4 /// </summary>
5 public enum OperateType
6 {
7 /// <summary>
8 /// 增加
9 /// </summary>
10 [Description("增加")]
11 Add = 1,
12
13 /// <summary>
14 /// 修改
15 /// </summary>
16 [Description("修改")]
17 Edit = 2,
18
19 /// <summary>
20 /// 删除
21 /// </summary>
22 [Description("删除")]
23 Del = 3
24
25 ///// <summary>
26 ///// 查询
27 ///// </summary>
28 //[Description("查询")]
29 //Query = 4
30 }