我正在使用 Json.NET 序列化一个具有IEnumerable枚举和DateTime. 它是这样的:
class Chart
{
// ...
public IEnumerable<int> YAxis { get; set; }
public IEnumerable<State> Data { get; set; }
public IEnumerable<DateTime> XAxis { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
但是我需要一个自定义JsonConverter来使枚举序列化为字符串并更改DateTime字符串格式。
我已经使用试过JsonConverter提到属性在这里,枚举和自定义IsoDateTimeConverter为已完成在这里:
[JsonConverter(typeof(StringEnumConverter))]
public IEnumerable<State> Data { get; set; }
[JsonConverter(typeof(MyDateTimeConverter))]
public IEnumerable<DateTime> XAxis { get; set; }
Run Code Online (Sandbox Code Playgroud)
我希望它也适用于一个IEnumerable,但不出所料,它没有:
无法将类型为“WhereSelectArrayIterator`2[System.Int32,Model.State]”的对象转换为类型“System.Enum”。
有什么办法可以说JsonConverterAttribute适用于每个项目而不是可枚举本身?