將枚舉Json化(鍵:枚舉Value,值:描述)


/// <summary>
        /// 將枚舉對象轉化為
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public static string EnumToJson(this Type type)
        {
            if (!type.IsEnum)
                throw new InvalidOperationException("enum expected");

            var enumValues =Enum.GetValues(type);
            Dictionary<int, string> result = new Dictionary<int, string>();
            foreach (var item in enumValues)
            {
                //FieldInfo fieldInfo = type.GetField(item);
                string name = Enum.GetName(type, item);
                if (name != null)
                {
                    // 獲取枚舉字段。
                    FieldInfo fieldInfo = type.GetField(name);
                    if (fieldInfo != null)
                    {
                        // 獲取描述的屬性。
                        DescriptionAttribute attr = Attribute.GetCustomAttribute(fieldInfo,
                            typeof(DescriptionAttribute), false) as DescriptionAttribute;
                        if (attr != null)
                        {
                            result.Add((int)item,attr.Description);
                        }
                    }
                }
            }
            return JsonConvert.SerializeObject(result);
        }

  直接寫在枚舉內


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM