如何获取枚举描述值? [英] How do I get the enum description value?

查看:81
本文介绍了如何获取枚举描述值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个枚举,其中有描述。我无法获得描述值。我设法得到枚举值,但我希望价值是描述值。任何解决方案?



我尝试过: < br $>


 public enum FaqType 
{
[Description(Internal)]
Internal = 1,
[描述(网站)]
网站= 2,
[描述(网络与内部)]
WebInternal = 3
}







这是我处理请求和回复的实体。

 [描述(类型)] 
公共字符串类型
{
get
{
return((Common.FaqType)TypeId)的ToString();

}
}

解决方案

  public   static   string  ToDescription( System.Enum数据)
{
var field = data.GetType()。GetField (data.ToString());
var desAttribute = field.GetCustomAttributes( typeof (DescriptionAttribute), false as DescriptionAttribute [];

if (desAttribute.Length > 0
{
return desAttribute [ 0 ]。信息;
}
return string .Empty;
}







其中说明是自定义属性,具有您在构造函数中设置的Message属性


I'm having an enum in which it has a description. i'm unable to get the description value. i managed to get the enum value but i want the value to be the description value.Any solutions?

What I have tried:

public enum FaqType
   {
       [Description("Internal")]
       Internal = 1,
       [Description("Website")]
       Website = 2,
       [Description("Web & Internal")]
       WebInternal = 3
   }




this is my entity in which requests and responses are handled.

[Description("Type")]
public string Type
{
    get
    {
        return ((Common.FaqType)TypeId).ToString();

    }
}

解决方案

public static string ToDescription(this System.Enum data)
        {
            var field = data.GetType().GetField(data.ToString());
            var desAttribute = field.GetCustomAttributes(typeof(DescriptionAttribute), false) as DescriptionAttribute[];

            if (desAttribute.Length > 0)
            {
                return desAttribute[0].Message;
            }
            return string.Empty;
        }




Where Description is Custom Attribute having Message property which you set in Constructor


这篇关于如何获取枚举描述值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆