Saya menulis JsonConverter untuk Json.NET yang memungkinkan saya untuk mengubah enum apapun menjadi nilai string yang ditentukan oleh atribut [Description].
Sebagai contoh:
public enum MyEnum {
[Description("Sunday")] Sunday,
[Description("Monday")] Monday,
[Description("Tuesday")] Tuesday,
[Description("Wednesday")] Wednesday,
[Description("Thursday")] Thursday,
[Description("Friday")] Friday,
[Description("Saturday")] Saturday
}
Saya sudah memiliki kode untuk mendukung myEnum.Description()
yang jelas akan mengembalikan deskripsi stringnya.
Dalam implementasi JsonConverter, ada metode ini:
public override bool CanConvert(Type objectType)
{
}
Saya mencoba mencari cara untuk menentukan apakah objectType
an Enum
dan mengembalikan true sehingga konverter tahu itu dapat mengonversi objek ini. Karena saya punya banyak Enum
, saya tidak bisa secara eksplisit memeriksa masing-masing jadi saya berharap cara yang lebih umum untuk mencapai ini.
Jawaban:
Gunakan
IsEnum
properti:sumber
return objectType.IsEnum
CanConvert
, ia akan memeriksa beberapa kemungkinan konversi yang berbeda, tidak hanya jika itu sebuahenum
. Jika tidak, Anda mungkin juga hanya menggunakanIsEnum
properti itu sendiri.Type.IsEnum adalah apa yang Anda cari
sumber
Saya benar-benar salah menafsirkan pertanyaan dengan berfokus terlalu banyak pada [Description], jadi jika Anda ingin memeriksa apakah enum tertentu memiliki atribut [description] atau tidak (jika json memberikan kecocokan ketika tidak ada), ini adalah satu cara yang mungkin untuk memeriksanya:
sumber