public static string GetDescription(Type enumType, int enumValue) { if (enumType == null) { throw new ArgumentNullException("enumType"); } if (!enumType.IsEnum) { throw new ArgumentException("enumType不是枚举类型"); } EnumItem item = GetEnumItems(enumType).Find(p => p.Value == enumValue); if (item == null) { return("未知"); } return((item == null) ? enumValue.ToString() : item.Description); }
public static List <EnumItem> GetEnumItems(Type type, int flag, int value) { FieldInfo[] fields = type.GetFields(); List <EnumItem> list = new List <EnumItem>(fields.Length); foreach (FieldInfo info in fields) { if ((info.FieldType == type) && CompareItem(info, flag, value)) { EnumItem item = new EnumItem { Name = info.Name, Value = Convert.ToInt32(info.GetRawConstantValue()), Description = GetFieldDesc(info) }; list.Add(item); } } return(list); }