using System; using System.ComponentModel; using System.Globalization; using System.Reflection; namespace Gestor.Model.Converter; public class EnumDescriptionTypeConverter : EnumConverter { public EnumDescriptionTypeConverter(Type type) : base(type) { } public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType != typeof(string)) { return base.ConvertTo(context, culture, value, destinationType); } if (value == null) { return string.Empty; } FieldInfo field = value.GetType().GetField(value.ToString()); if (field == null) { return string.Empty; } DescriptionAttribute[] array = (DescriptionAttribute[])field.GetCustomAttributes(typeof(DescriptionAttribute), inherit: false); if (array.Length == 0 || string.IsNullOrEmpty(array[0].Description)) { return value.ToString(); } return array[0].Description; } }