예제 #1
0
        /// <summary>
        /// 获得枚举项的描述信息值,若没有定义该附加属性,则返回空串
        /// </summary>
        /// <param name="enumItem">枚举项</param>
        /// <returns>枚举项的描述信息值,若没有定义该枚举项附加属性,则返回空串</returns>
        /// <remarks>获得枚举项的描述信息值,若没有定义该枚举项附加属性,则返回空串
        /// <code source="..\Framework\TestProjects\DeluxeWorks.Library.Test\Core\EnumItemDescriptionAttributeTest.cs" region = "GetDescriptionTest" lang="cs" title="得到枚举项的描述信息属性" />
        /// </remarks>
        public static string GetDescription(System.Enum enumItem)
        {
            string result = string.Empty;

            EnumItemDescriptionAttribute attr = GetAttribute(enumItem);

            if (attr != null)
            {
                result = attr.Description;
            }

            return(result);
        }
예제 #2
0
        private void FillDescriptionAttributeInfo(EnumItemDescriptionAttribute attr)
        {
            if (attr != null)
            {
                this.Description = attr.description;
                this.ShortName   = attr.ShortName;
                this.Category    = attr.Category;

                if (attr.SortId != -1)
                {
                    this.sortId = attr.SortId;
                }
            }
        }
        /// <summary>
        /// 根据描述找到枚举对象的值
        /// </summary>
        /// <param name="enumType"></param>
        /// <param name="description"></param>
        /// <returns></returns>
        public static int GetEnumValue(Type enumType, string description)
        {
            EnumItemDescriptionList enumList = EnumItemDescriptionAttribute.GetDescriptionList(enumType);

            EnumItemDescription found = null;

            foreach (EnumItemDescription item in enumList)
            {
                if (item.Description == description)
                {
                    found = item;
                    break;
                }
            }

            if (found == null)
            {
                throw new ArgumentException(string.Format("无法在类型为{0}的枚举中找到描述为{1}的枚举对象", enumType.Name, description));
            }

            return(found.EnumValue);
        }
        /// <summary>
        /// 根据值找到枚举对象的描述
        /// </summary>
        /// <param name="enumType"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string GetEnumDescription(Type enumType, int value)
        {
            Enum item = (Enum)Enum.ToObject(enumType, value);

            return(EnumItemDescriptionAttribute.GetDescription(item));
        }