【问题标题】:DataMember DateTime with Null Values in WCF throwing Error Angular $httpDataMember DateTime 与 WCF 中的 Null 值引发错误 Angular $http
【发布时间】:2017-08-30 14:14:16
【问题描述】:

我有一个带有 DataMember DateTime 的 DataContract 对象

  [DataMember]
  public DateTime ModDateApproval { get; set; }

此字段具有空值,在 C# 中转换为 DateTime MinValue。

我的 WCF 服务在 SoapUI 中工作,但在 Angular $http 中不工作。我直接以角度使用服务,当我将字段删除为 DataMember 时,服务正在工作。

【问题讨论】:

  • 很可能是序列化问题。您发送的日期值是多少?
  • Null 日期值在 c# 中自动转换为 DateTime.MinValue,即 1/1/0001 12:00:00 AM,现在通过在 DateTime.MinValue.ToUniversalTime(); 中进行解析。我很好奇为什么需要将其转换为 .ToUniversalTime();
  • 为什么不让属性可以为空? public DateTime? ModDateApproval。这应该更准确地反映您的意图。将 MinValue 设置为通用时间似乎是一个笨拙的解决方案。
  • 好的。我想这是一种更直接的方法。谢谢!

标签: c# angularjs wcf datetime


【解决方案1】:

我的问题与这个问题有关。也许 DateTime 只需要像这样在 Web 服务中进行操作:

 if(x.MyDate == DateTime.MinValue)
            {
                x.MyDate = DateTime.MinValue.ToUniversalTime();
            }

Handling WCF Deserialization of DateTime objects

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 2010-10-08
    • 1970-01-01
    相关资源
    最近更新 更多