[英]Error using DateTime 0001-01-01 in C# with WCF and JSON
我試圖從WCF服務發送DateTime對象,該服務返回JSON對象。 除0001-01-01外,所有日期均正常。 服務無法對此進行序列化,為什么會這樣?
這些工作正常:
return DateTime.now;
return new DateTime(1,1,2);
但是這些不起作用:
return new DateTime();
return new DateTime(0);
return new DateTime(1,1,1);
我的介面
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/GetTest")]
DateTime GetTest();
沒有崩潰,除了沒有從服務返回任何數據。 為什么會這樣?
我猜這是由於以下原因: DateTime的毫秒表示形式? 您不能將日期時間設置為這樣的值。
WCF和JSON的日期比較短。 (1/1/1000之前的所有內容)都可以解決此問題。
另外,默認的日期時間日期將是1/1/1。 該值由WCF和JSON中的NULL表示,並且NULL處理將導致完全沒有結果 ,這是我認為您的代碼出錯的部分...
輸入小日期時,我建議您嘗試以下代碼行:
var date = new DateTime(1,1,1,0,0,0,DateTimeKind.Utc);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.