c# Enum获取name,value和description
2013-05-13 10:41
363 查看
如果我们的枚举类型结构如下,我们需要获取enum的name,value以及description
获取的函数代码如下:
根据enum的name获取description
public enum EnumTest { [Description("Attribute")] Attribute1 = 1, [Description("Attribute")] Attribute2 = 2, [Description("Measure")] Measure1 = 3, [Description("Measure")] Measure2 = 4 }
获取的函数代码如下:
/// <summary> /// get all information of enum,include value,name and description /// </summary> /// <param name="enumName">the type of enumName</param> /// <returns></returns> public static List<dynamic> GetAllItems(this Type enumName) { List<dynamic> list = new List<dynamic>(); // get enum fileds FieldInfo[] fields = enumName.GetFields(); foreach (FieldInfo field in fields) { if (!field.FieldType.IsEnum) { continue; } // get enum value int value = (int)enumName.InvokeMember(field.Name, BindingFlags.GetField, null, null, null); string text = field.Name; string description = string.Empty; object[] array = field.GetCustomAttributes(typeof(DescriptionAttribute), false); if (array.Length > 0) { description = ((DescriptionAttribute)array[0]).Description; } else { description = ""; //none description,set empty } //add to list dynamic obj = new ExpandoObject(); obj.Value = value; obj.Text = text; obj.Description = description; list.Add(obj); } return list; }
根据enum的name获取description
/// <summary> /// get enum description by name /// </summary> /// <typeparam name="T">enum type</typeparam> /// <param name="enumItemName">the enum name</param> /// <returns></returns> public static string GetDescriptionByName<T>(this T enumItemName) { FieldInfo fi = enumItemName.GetType().GetField(enumItemName.ToString()); DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes( typeof(DescriptionAttribute), false); if (attributes != null && attributes.Length > 0) { return attributes[0].Description; } else { return enumItemName.ToString(); } }
相关文章推荐
- 通过枚举类型的value或者name获取description
- 获取枚举Name,Value,Description两种方法
- C#+Enum 枚举扩展方法获取name,value和Description
- 反射:获取枚举类型的Name,Value,Description
- 获取manifest里边meta-data 的name对应的value
- 获取类似于<item value='1' name='测试'/> 中指定位置的value,name的值
- js获取相同name文本框的value
- 获取枚举Description的Name
- js 获取所有name的Value值,求和
- (一)利用 mdb 调试获取 nvlist_t 中 nvpair_t(name/value) 对
- - query.ajax通过name获取value值方法、
- java后台怎么获取form表单里所有input的name和value
- jquery 通过name名称获取当前name的value值
- 用document.forms[formname].elements[elementname].value获取FORM元素的value--测试通过
- JS 设置与获取Cookie,函数setCookie(name,value,time)getCookie(name)
- 如何获取checkbox的value和name
- js匹配表单name的值获取value
- JS 设置与获取Cookie,函数setCookie(name,value,time)getCookie(name)
- 利用反射机制获取Enum属性的name或者value
- 从form表单 获取表单内所有的name和value!!!