ile serileştirirken özel bir DateTime biçemi belirtme ASP.NET Web API kullanarak bazı verileri açığa çıkarmak için bir API geliştiriyorum.Json.Net
API'den birinde, istemci tarihi yyyy-MM-dd biçiminde göstermemizi ister. Global ayarları (örneğin, GlobalConfiguration.Configuration.Formatters.JsonFormatter
) değiştirmek istemiyorum çünkü bu istemci için çok özel. Ve bunu birden çok müşteri için bir çözümde geliştiriyorum. Aklıma gelen solüsyonun
biri özel bir Json dönüştürücü oluşturmak ve sonra özel biçimlendirme
örneğin yapmanız gereken mülke o koymaktır
class ReturnObjectA
{
[JsonConverter(typeof(CustomDateTimeConverter))]
public DateTime ReturnDate { get;set;}
}
Bunu yapmanın başka bir kolay yolu olup olmadığını merak ediyorum.
:
DateTimeFormat dize Burada anlatılan .NET biçim dizesi sözdizimi kullanır değer, API'lar kullanıcı tarafından okunabilir değil, bilgisayar okunabilirliği içindir, bu yüzden [ISO 8601] gibi bir tek bir tarih formatına bağlı kalmak daha iyidir (http://xkcd.com/1179/). İstemci doğrudan API sonucunu kullanıcıya gösteriyorsa veya API için kendi tarih ayrıştırma kodunu yazıyorsa, yanlış yapıyorlar demektir. Ekran için bir tarih biçimlendirmek, en üstteki UI katmanına bırakılmalıdır. – MCattle