Adicione facilmente texto descritivo a enums em C #:
using System;
using System.ComponentModel;
public enum Genre
{
[Description("Acid Jazz")]
AcidJazz,
Metal,
[Description("R&B and Soul")]
RAndBAndSoul
}
Você pode acessar as descrições com um método de extensão:
using System;
using System.Linq;
using System.Reflection;
public static class Extensions
{
public static string Description(this Enum value)
{
if (value == null)
{
throw new ArgumentNullException("value", "value cannot be null.");
}
string text = value.ToString();
string result = text;
Type type = value.GetType();
MemberInfo info = type.GetMember(text).FirstOrDefault();
if (info != null)
{
DescriptionAttribute da = info.GetCustomAttributes(
typeof(DescriptionAttribute),
false).FirstOrDefault() as DescriptionAttribute;
if (da != null)
{
result = da.Description;
}
}
return result;
}
}