Estoy escribiendo un JsonConverter para Json.NET que debería permitirme convertir cualquier enumeración en un valor de cadena definido por un atributo [Descripción].
Por ejemplo:
public enum MyEnum {
[Description("Sunday")] Sunday,
[Description("Monday")] Monday,
[Description("Tuesday")] Tuesday,
[Description("Wednesday")] Wednesday,
[Description("Thursday")] Thursday,
[Description("Friday")] Friday,
[Description("Saturday")] Saturday
}
Ya tengo el código de soporte myEnum.Description()que obviamente devolverá su descripción de cadena.
En la implementación de JsonConverter, existe este método:
public override bool CanConvert(Type objectType)
{
}
Estoy tratando de averiguar cómo determinar si objectTypees un Enumy devolver verdadero para que el convertidor sepa que puede convertir este objeto. Como tengo muchos Enum, no puedo marcar explícitamente cada uno, así que esperaba una forma más genérica de lograr esto.

Respuestas:
Utilice la
IsEnumpropiedad:fuente
return objectType.IsEnumCanConvert, verificará múltiples conversiones posibles diferentes, no solo si es unenum. De lo contrario, también puede usar laIsEnumpropiedad en sí.Type.IsEnum es lo que estás buscando
fuente
Malinterpreté completamente la pregunta al centrarme demasiado en la [Descripción], por lo que en caso de que alguna vez quiera verificar si una enumeración en particular tiene un atributo [descripción] o no (en caso de que json arroje un ajuste cuando no hay ninguno), esto es una posible forma de comprobarlo:
fuente