【问题标题】:ASP.NET 2.0 VB Client passing dateime as 01/01/0001 00:00:00 to WCF ServiceASP.NET 2.0 VB 客户端将日期时间作为 01/01/0001 00:00:00 传递给 WCF 服务
【发布时间】:2019-01-22 03:11:18
【问题描述】:

我有一个用 .NET 4.5 编写的 wcf Web 服务,它适用于使用 4.5 和我们的单元测试创​​建的网站。

我们已将它连接到一个较旧的 .net 2.0 Web 项目,并以完全相同的方式传递日期,但 wcf 服务被传递为 01/01/0001 00:00:00。

这是 2.0 框架的问题吗?该服务作为网络参考添加。

我们正在填充自定义类型,其他值都很好,唯一的问题是日期时间...

这是 WCF 类型:

  [DataContract]
  public class EventType
    {
      [DataMember]
      public string EventTypeCode { get; set; }
      [DataMember]
      public DateTime  RecordedDateTime { get; set; }
      [DataMember]
      public string UserName { get; set; }
    }

RecordedDateTime 是问题所在。

客户端正在使用 Web 引用调用 wcf 服务并像这样传递对象:

Dim response As aResponse = New aResponse()
    response = client.Transfer(request)

【问题讨论】:

  • 这可能是 DataContract 的问题。您是否尝试过用 XmlSerializer 代替 EventType

标签: asp.net wcf datetime .net-2.0


【解决方案1】:

我发现 .NET 2.0 项目为该类型添加了另一个属性。

在这种情况下,.EventType.RecordedDateTime 会向服务返回 null,除非属性 RecordedDateTimeSpecified 设置为 true...

.EventType.RecordedDateTime = Convert.ToDateTime(infoDate.Text.Trim)
.EventType.RecordedDateTimeSpecified = True

一旦设置好,日期值就会毫无问题地传递。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 2022-01-24
    • 2022-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多