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();
            }
        }
    
    
    }
  • 相关阅读:
    关于App_Offline.htm的应用实例(及CIM_DataFile的用法)注意Windows下
    Office2007多个文档打开时,开启多个窗口(独立进程)
    Asp.Net环境下web Pages,web Forms 及MVC的优越及缺点
    批量生成表Create SQL 示例 Generate SQL Create Scripts for existing tables with Query
    Different between datetime and timestamp, and its setting
    SqlConnection ,SqlTransaction,SqlCommand的常用法
    ASP.NET下从Server端下载文件到Client端C#
    C#中Remote文件复制简例子
    DOS BAT用法简例子
    改善SQL Procedure性能的几点方法
  • 原文地址:https://www.cnblogs.com/yaoxiaodan/p/15263571.html
Copyright © 2011-2022 走看看