zoukankan      html  css  js  c++  java
  • 如何获取枚举的描述信息

    方法一:   使用[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();
            }
        }
    
    
    }
  • 相关阅读:
    python开源项目聚合推荐【1】
    python开发--Python实现延时操作的几种方式
    odoo开发笔记 -- 单台物理服务器上,利用docker部署多套odoo应用
    odoo开发笔记 -- odoo官方docker启动原理
    odoo开发笔记 -- odoo官方docker镜像部署
    odoo开发笔记 -- 借助模块queue_job实现异步方法调用
    odoo开发笔记 -- 提高访问安全性的一种方式
    python开发笔记-pymsslq连接操作SqlServer数据库
    运维笔记--Debian/Ubuntu系统离线安装pymssql,连接SqlServer
    python开发笔记-str转字典
  • 原文地址:https://www.cnblogs.com/yaoxiaodan/p/15263571.html
Copyright © 2011-2022 走看看