利用DescriptionAttribute实现枚举字符串

时间:2014-01-24 19:14:41   收藏:0   阅读:365

我们知道定义枚举时是不允许带空格等符号的,这样就不利于进行字符串对比。当然可以通过给枚举添加DescriptionAttribute,然后通过fieldinfo读取DescriptionAttribute来获取字符串。

以下是例子

先定义枚举

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/// <summary>
/// Campaign Mode
/// </summary>
public enum CampaignModeEnum
{
    /// <summary>
    /// Inbound
    /// </summary>
    [DescriptionAttribute("Inbound")]
    Inbound,
    /// <summary>
    /// Outbound Preview
    /// </summary>
    [DescriptionAttribute("Outbound Preview")]
    Outbound_Preview,
    /// <summary>
    /// Outbound Predictive
    /// </summary>
    [DescriptionAttribute("Outbound Predictive")]
    Outbound_Predictive
}

编写获取DescriptionAttribute的类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static class EnumMethod
{
    public static string StringValue(Enum value)
    {
        FieldInfo fi = value.GetType().GetField(value.ToString());
        DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
        if (attributes.Length > 0)
        {
            return attributes[0].Description;
        }
        else
        {
            return value.ToString();
        }
    }
}

  

这样调用就可以啦!

EnumMethod.StringValue(CampaignModeEnum.Outbound_Predictive);

  

原文:http://www.cnblogs.com/colder/p/3532135.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!