反射相关函数获取枚举描述函数

public static string GetEnumDescription(Enum enumValue)
            {
                string value = enumValue.ToString();
                FieldInfo field = enumValue.GetType().GetField(value);
                object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false);    //获取描述属性
                if (objs.Length == 0)    //当描述属性没有时,直接返回名称
                    return value;
                DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0];
                return descriptionAttribute.Description;
            }
  PropertyInfo[] peroperties = typeof(companyEnum).GetProperties(BindingFlags.Public | BindingFlags.Instance);

            foreach (PropertyInfo property in peroperties)
            {
                object[] objs = property.GetCustomAttributes(typeof(DescriptionAttribute), true);
                if (objs.Length > 0)
                {
                    ControlFiledData cfd = new ControlFiledData();
                    cfd.comname = "txt" + property.Name;
                    cfd.labtext = ((DescriptionAttribute)objs[0]).Description;
                    // Console.WriteLine("{0}: {1}", property.Name, ((DescriptionAttribute)objs[0]).Description);
                    ListData.Add(cfd);
                }
            }

 

posted on 2018-12-06 21:44  HOT SUMMER  阅读(423)  评论(0)    收藏  举报

导航