/// <summary> /// 根据枚举值,返回描述字符串 /// 如果多选枚举,返回以","分割的字符串 /// </summary> /// <param name="e">EnumTitleAttribute</param> /// <returns>返回描述字符串</returns> public static string GetAllEnumTitle(this EnumTitleAttribute e) { string[] _valueArray = e.ToString().Split(ENUM_TITLE_SEPARATOR.ToArray(), StringSplitOptions.RemoveEmptyEntries); Type _type = e.GetType(); StringBuilder _builder = new StringBuilder(); foreach (string enumValue in _valueArray) { FieldInfo _field = _type.GetField(enumValue.Trim()); if (_field == null) { continue; } EnumTitleAttribute[] _attrs = _field.GetCustomAttributes(typeof(EnumTitleAttribute), false) as EnumTitleAttribute[]; if (_attrs != null && _attrs.Length > 0) { _builder.AppendFormat("{0}{1}", _attrs[0].Title, ENUM_TITLE_SEPARATOR); } } return(_builder.ToString().TrimEnd(ENUM_TITLE_SEPARATOR.ToArray())); }
private static EnumTitleAttribute GetEnumTitleAttribute(Enum e) { string[] valueArray = e.ToString().Split(ENUM_TITLE_SEPARATOR.ToArray(), StringSplitOptions.RemoveEmptyEntries); Type type = e.GetType(); EnumTitleAttribute _ret = null; foreach (string enumValue in valueArray) { FieldInfo _field = type.GetField(enumValue.Trim()); if (_field == null) { continue; } EnumTitleAttribute[] _attrs = _field.GetCustomAttributes(typeof(EnumTitleAttribute), false) as EnumTitleAttribute[]; if (_attrs != null && _attrs.Length > 0) { _ret = _attrs[0]; break; } } return(_ret); }
private static Dictionary <T, EnumTitleAttribute> GetItemAttributeList <T>() where T : struct { Dictionary <T, EnumTitleAttribute> _dic = new Dictionary <T, EnumTitleAttribute>(); Array _array = typeof(T).GetEnumValues(); foreach (object t in _array) { EnumTitleAttribute _att = GetEnumTitleAttribute(t as Enum); if (_att != null) { _dic.Add((T)t, _att); } } return(_dic); }