• 如何获取枚举的描述信息


    方法一:   使用[Display(Name="描述")]特性  

    public namespace My.Test.Application
    {
    
        /// <summary>
        /// 定义枚举
        /// </summary>
        public enum ExpendRecordStatusEnum
        {
    
            /// <summary>
            /// 正常销售
            /// </summary>
            [Display(Name = "正常销售")]
            NormalSale = 4,
    
            /// <summary>
            /// 退换
            /// </summary>
            [Display(Name = "退换单据")]
            Replacement = 5
    
        }
    
        /// <summary>
        /// 枚举帮助
        /// </summary>
        public static class EnumHelper
        {
    
            /// <summary>
            /// 获得枚举量的Display[name=""]特性
            /// </summary>
            /// <param name="eum"></param>
            /// <returns></returns>
            public static string GetDisplayName(this System.Enum eum)
            {
                var type = eum.GetType(); //先获取这个枚举的类型
                var field = type.GetField(eum.ToString()); //通过这个类型获取到值
                var obj = (DisplayAttribute)field.GetCustomAttribute(typeof(DisplayAttribute)); //得到特性
                return obj.Name ?? "";
            }
    
    
        }
    
        /// <summary>
        /// 枚举测试类
        /// </summary>
        public class TestEnum
        {
    
            /// <summary>
            /// 获取到字典描述值
            /// </summary>
            /// <returns></returns>
            public string SearchEnumDisplayName()
            {
                return ExpendRecordStatusEnum.NormalSale.GetDisplayName();
            }
        }
    
    
    }

    方法二:   使用[DisplayName("描述")]特性

    注意:在netcore 3.1中无法使用DisplayName特性

    public namespace My.Test.Application
    {
    
        /// <summary>
        /// 定义枚举
        /// </summary>
        public enum ExpendRecordStatusEnum
        {
    
            /// <summary>
            /// 正常销售
            /// </summary>
            [DisplayName("正常销售")]
            NormalSale = 4,
    
            /// <summary>
            /// 退换
            /// </summary>
            [DisplayName("退换单据")]
            Replacement = 5
    
        }
    
        /// <summary>
        /// 枚举帮助
        /// </summary>
        public static class EnumHelper
        {
    
            /// <summary>
            /// 获得枚举量的DisplayName特性
            /// </summary>
            /// <param name="eum"></param>
            /// <returns></returns>
            public static string GetDisplayName(this System.Enum eum)
            {
                var type = eum.GetType(); //先获取这个枚举的类型
                var field = type.GetField(eum.ToString()); //通过这个类型获取到值
                var obj = (DisplayNameAttribute)field.GetCustomAttribute(typeof(DisplayNameAttribute)); //得到特性
                return obj.DisplayName ?? "";
            }
    
    
        }
    
        /// <summary>
        /// 枚举测试类
        /// </summary>
        public class TestEnum
        {
    
            /// <summary>
            /// 获取到字典描述值
            /// </summary>
            /// <returns></returns>
            public string SearchEnumDisplayName()
            {
                return ExpendRecordStatusEnum.NormalSale.GetDisplayName();
            }
        }
    
    
    }
  • 相关阅读:
    osc搜索引擎框架search-framework,TngouDB,gso,
    当Scheduler拿不到url的 时候,不能立即退出
    摘要算法CRC8、CRC16、CRC32,MD2 、MD4、MD5,SHA1、SHA256、SHA384、SHA512,RIPEMD、PANAMA、TIGER、ADLER32
    sha256
    非对称加密RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。使用最广泛的是RSA算法
    3个著名加密算法(MD5、RSA、DES)的解析
    DOM
    面向对象
    抽象工厂在ADO.Net中的应用
    Provider Pattern提供者模式和策略模式
  • 原文地址:https://www.cnblogs.com/yaoxiaodan/p/15263571.html
Copyright © 2020-2023  润新知