Ieri mi è capitato di dover caricare gli elementi di un Enum in una lista, ma il nome di ogni elemento non era abbastanza "parlante". Dopo qualche ricerca ho trovato il modo di aggiungere una descrizione agli elementi.
Ecco qui l'esempio:
public enum MyEnumName
{
[Description("First Enum Item Description")] Item1 = 1,
[Description("Second Enum Item Description")] Item2,
[Description("Third Enum Item Description")] Item3
}
Per recuperare le descrizioni e caricare la lista si sfrutta la reflection
public static string GetEnumDescription(Enum value)
{
FieldInfo fi = value.GetType().GetField(value.ToString());
DescriptionAttribute[] attributes =
(DescriptionAttribute[])fi.GetCustomAttributes(
typeof(DescriptionAttribute), false);
return (attributes.Length > 0) ? attributes[0].Description : value.ToString();
}
Ultima cosa, richiamare la funzione:
string item1Description = GetEnumDescription(MyEnumName.Item1)
E' tutto :-)
Powered by ScribeFire.