我试图从返回JSON对象的WCF服务发送DateTime对象。除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();
除了没有从服务返回任何数据外,什么都没有崩溃。为什么会这样?
答案 0 :(得分:0)
我想这是因为以下原因:DateTime's representation in milliseconds? 您无法将日期时间设置为此值。
答案 1 :(得分:0)
WCF和JSON在小日期方面遇到麻烦。 (1/1/1000之前的所有内容)都可以解决这个问题。
此外,默认日期时间日期为1/1/1。这个值在WCF和JSON中用NULL表示,NULL处理将导致 No Result ,这是你的代码出错的部分我认为......
输入小日期时,我建议您尝试以下代码行:
var date = new DateTime(1,1,1,0,0,0,DateTimeKind.Utc);