J'écris un JsonConverter pour Json.NET qui devrait me permettre de convertir n'importe quelle énumération en une valeur de chaîne définie par un attribut [Description].
Par exemple:
public enum MyEnum {
[Description("Sunday")] Sunday,
[Description("Monday")] Monday,
[Description("Tuesday")] Tuesday,
[Description("Wednesday")] Wednesday,
[Description("Thursday")] Thursday,
[Description("Friday")] Friday,
[Description("Saturday")] Saturday
}
J'ai déjà le code pour le support myEnum.Description()
qui renverra évidemment sa chaîne de description.
Dans l'implémentation JsonConverter, il existe cette méthode:
public override bool CanConvert(Type objectType)
{
}
J'essaie de comprendre comment déterminer si objectType
est un Enum
et retourner vrai afin que le convertisseur sache qu'il peut convertir cet objet. Comme j'en ai beaucoup Enum
, je ne peux pas les vérifier explicitement, donc j'espérais une manière plus générique d'accomplir cela.
Réponses:
Utilisez la
IsEnum
propriété:la source
return objectType.IsEnum
CanConvert
, elle vérifiera plusieurs conversions possibles, pas seulement s'il s'agit d'un fichierenum
. Sinon, vous pouvez tout aussi bien utiliser laIsEnum
propriété elle-même.Type.IsEnum est ce que vous recherchez
la source
J'ai complètement mal interprété la question en me concentrant trop sur la [Description], donc au cas où vous voudriez vérifier si une énumération particulière a un attribut [description] ou non (au cas où json lèverait un ajustement alors qu'il n'y en avait pas), c'est une façon possible de vérifier cela:
la source