12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using TEAMModelOS.SDK.Context.Attributes.MySQL;
- namespace TEAMModelOS.SDK.Module.SqlSugar.Configuration.Data
- {
- /// <summary>
- /// 枚举扩展属性
- /// </summary>
- public static class EnumExtension
- {
- private static Dictionary<string, Dictionary<string, string>> enumCache;
- private static Dictionary<string, Dictionary<string, string>> EnumCache
- {
- get
- {
- if (enumCache == null)
- {
- enumCache = new Dictionary<string, Dictionary<string, string>>();
- }
- return enumCache;
- }
- set { enumCache = value; }
- }
- /// <summary>
- /// 获得枚举提示文本
- /// </summary>
- /// <param name="en"></param>
- /// <returns></returns>
- public static string GetEnumText(this Enum en)
- {
- string enString = string.Empty;
- if (null == en) return enString;
- var type = en.GetType();
- enString = en.ToString();
- if (!EnumCache.ContainsKey(type.FullName))
- {
- var fields = type.GetFields();
- Dictionary<string, string> temp = new Dictionary<string, string>();
- foreach (var item in fields)
- {
- var attrs = item.GetCustomAttributes(typeof(TextAttribute), false);
- if (attrs.Length == 1)
- {
- var v = ((TextAttribute)attrs[0]).Value;
- temp.Add(item.Name, v);
- }
- }
- EnumCache.Add(type.FullName, temp);
- }
- if (EnumCache[type.FullName].ContainsKey(enString))
- {
- return EnumCache[type.FullName][enString];
- }
- return enString;
- }
- }
- }
|