私はいくつかのC#クラスをREST API用のJSON形式に変換する必要があるソリューションを持っています。私はenumを使用して、列挙型で十分であるときに値を渡す文字列を覚えておく必要がないようにしています。Json.netで列挙型のリストをシリアライズ
このため、引数の1つは列挙型のリストです。私は既にJsonConverterを使って書かれたクラスを持っているので、私は単純な列挙型なので、このリストの列挙型をWriteJsonメソッドに渡すだけで、リストのコンポーネントをどこかで自動的に処理すると思った。残念ながら、これはそうではありません。私WriteJson方法で、私は次のようしている:私はSuiteTypeにキャストしようとすると、
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) {
var e = (SuiteType) value;
switch (e) {
case SuiteType.Full:
writer.WriteValue("complete");
break;
case SuiteType.Partial:
writer.WriteValue("partial");
break;
}
}
をこれは、インバウンド値が実際にSuiteTypeの一覧ではないという理由だけで、もちろん悪いキャストに関するエラーを与えますスイートタイプ。これを念頭に置いて、私はこのカスタム変換をどのように扱うことができますか?(エニューム名とその列挙型のコレクションから変換している間に出力する文字列またはint値の間には常に1:1ではないからです)