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 objectType
es un Enum
y 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
IsEnum
propiedad:fuente
return objectType.IsEnum
CanConvert
, verificará múltiples conversiones posibles diferentes, no solo si es unenum
. De lo contrario, también puede usar laIsEnum
propiedad 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