Duplicar posible:
Getting attributes of Enum’s valueCómo obtener la descripción de C# Enum del valor?
tengo una enumeración con la descripción atribuye así:
public enum MyEnum
{
Name1 = 1,
[Description("Here is another")]
HereIsAnother = 2,
[Description("Last one")]
LastOne = 3
}
me encontré con este trozo de código para recuperar la descripción basada en una Enum
public static string GetEnumDescription(Enum value)
{
FieldInfo fi = value.GetType().GetField(value.ToString());
DescriptionAttribute[] attributes =
(DescriptionAttribute[])fi.GetCustomAttributes(
typeof(DescriptionAttribute),
false);
if (attributes != null &&
attributes.Length > 0)
return attributes[0].Description;
else
return value.ToString();
}
Esto me permite escribir código como:
var myEnumDescriptions = from MyEnum n in Enum.GetValues(typeof(MyEnum))
select new { ID = (int)n, Name = Enumerations.GetEnumDescription(n) };
Lo que quiero hacer es si conozco el valor de enumeración (por ejemplo, 1) - ¿cómo puedo recuperar la descripción? En otras palabras, ¿cómo puedo convertir un número entero en un "valor Enum" para pasar a mi método GetDescription?
(! Atributos = null) será siempre cierto y demás es redundante. – Jeff
espacio de nombres requerido para Descripción es System.ComponentModel –