私は現在、さまざまな異なる形式で日付を返す API を使用しています (理想的には、形式を標準化します)。
[JsonConverter(typeof(dMMyyyyWithSlashesConverter))]
public DateTime SomeDate { get; set; }
[JsonConverter(typeof(MMyyyyWithSlashesConverter))]
public DateTime AnotherDate { get; set; }
[JsonConverter(typeof(yyyyMMWithoutSlashesConverter))]
public DateTime AnnoyingDate { get; set; }
したがって、すべての日付形式に対して、新しいコンバーター クラスを作成する必要があります。
public class MMyyyyWithSlashesConverter: CustomDateConverter
{
public MMyyyyWithSlashesConverter() : base("MM/yyyy")
{
}
}
これは、かなり見苦しく反復的なコードになります。私はむしろ次のようなことができると思います
[ParseDateAs("d/MM/yyyy")]
public DateTime SomeDate { get; set; }
[ParseDateAs("MM/yyyy")]
public DateTime AnotherDate { get; set; }
[ParseDateAs("yyyyMM")]
public DateTime LessAnnoyingDate{ get; set; }
私が考えることができる唯一の方法は、JSON.net ソースを変更して、プロパティ パラメーターを JsonConverter の ReadJson 関数に渡すことです。これは、ソースの変更を伴わない解決策がない場合に行います。