zoukankan      html  css  js  c++  java
  • 自定义枚举类型的注释属性用于UI的显示

    1、定义枚举类型 

    public enum CommStatus
        {
            /// <summary>
            /// Udp类型
            /// </summary>
            [Description("Udp类型")] Udp = 0,

            /// <summary>
            /// Udp类型
            /// </summary>
            [Description("Udp广播类型")]
            Udpbroadcast = 1,
            /// <summary>
            /// Tcp服务端类型
            /// </summary>
            [Description("Tcp服务端类型")] TcpServer = 2,

            /// <summary>
            /// Tcp客户端类型
            /// </summary>
            [Description("Tcp客户端类型")] TcpClient = 3
        }

    2、定义自定义属性类型

     public class DescriptionAttribute : Attribute
        {
            public DescriptionAttribute(string desc)
            {
                Description = desc;
            }

            public string Description { get; set; }
        }

    3、通过反射获取枚举属性的自定义注释内容

    public class EnumDescription
        {
            public static string GetEnumDescription<TEnum>(object value)
            {
                var enumType = typeof(TEnum);
                if (!enumType.IsEnum)
                {
                    throw new ArgumentException($"enumItem req{value.ToString()}uires a Enum ");
                }
                var name = Enum.GetName(enumType, Convert.ToInt32(value));
                if (name == null)
                    return "";
                var objs = enumType.GetField(name).GetCustomAttributes(typeof(DescriptionAttribute), false);
                var attr = objs[0] as DescriptionAttribute;
                if (objs.Length == 0)
                {
                    return string.Empty;
                }
                else
                {
                    return attr != null ? attr.Description : string.Empty;
                }
            }
        }

    4、需要使用枚举的自定义注释的地方直接调用一下方法GetEnumDescription 给上枚举参数即可

  • 相关阅读:
    ASP.NET Web API 控制器执行过程(一)
    ASP.NET Web API 控制器创建过程(二)
    ASP.NET Web API 控制器创建过程(一)
    ASP.NET Web API WebHost宿主环境中管道、路由
    ASP.NET Web API Selfhost宿主环境中管道、路由
    ASP.NET Web API 管道模型
    ASP.NET Web API 路由对象介绍
    ASP.NET Web API 开篇示例介绍
    ASP.NET MVC 视图(五)
    ASP.NET MVC 视图(四)
  • 原文地址:https://www.cnblogs.com/Ray898/p/4924145.html
Copyright © 2011-2022 走看看