열거 기술 ~ 열거에 Describe 속성을 추가하고 열거 요소에 대한 설명 정보를 출력합니다

4997 단어 des
이것은 열거된 공통 속성 클래스입니다.
#region        

    /// <summary>

    ///       

    /// </summary>

    public static class EnumExtensions

    {

        public static string GetDescription(this Enum obj)

        {

            return GetDescription(obj, false);

        }

        public static string GetDescription(this Enum obj, bool isTop)

        {

            if (obj == null)

            {

                return string.Empty;

            }

            try

            {

                Type _enumType = obj.GetType();

                DescriptionAttribute dna = null;

                if (isTop)

                {

                    dna = (DescriptionAttribute)Attribute.GetCustomAttribute(_enumType, typeof(DescriptionAttribute));

                }

                else

                {

                    FieldInfo fi = _enumType.GetField(Enum.GetName(_enumType, obj));

 

                    dna = (DescriptionAttribute)Attribute.GetCustomAttribute(

 

                       fi, typeof(DescriptionAttribute));

                }

                if (dna != null && string.IsNullOrEmpty(dna.Description) == false)

                    return dna.Description;

            }

            catch

            {

                throw;

            }

            return obj.ToString();

 

        }

 

    }

    #endregion

 
평범한 매거
 public enum OpreateType

    {

        [Description("  ")]

        Add = 0,

        Del = 1,

        Update = 2,

        Import = 3,

    }

 
열거 요소에 대한 설명 정보를 출력합니다.
  Console.WriteLine(OpreateType.Add.GetDescription());

좋은 웹페이지 즐겨찾기