【问题标题】:Include timezone information in WSDL date field在 WSDL 日期字段中包含时区信息
【发布时间】:2018-12-04 15:42:35
【问题描述】:

我在 SOAP 消息中有一个 .NET 模型属性,其数据类型为“日期”(不是日期时间):

[System.Xml.Serialization.XmlElementAttribute(DataType="date")]
public System.DateTime DateField
{
    get
    {
        return this._dateField;
    }
    set
    {
        this._dateField = value;
    }
}

这部分模型的WSDL如下:

<element minOccurs="0" name="DateField" type="xs:date" />

要求是在发送此消息时包含时区信息。

当我设置 DateField 属性时,我可以看到 DateTimeKind 设置为 UTC。但是,当此消息通过 SOAP 发送时,收件人仅收到日期(即 2018-08-01)而不是带有时区的日期(即 2018-08-01T00:00:00+01:00)。

我查看了 w3.org (https://www.w3.org/TR/xmlschema-2/#date) 上的 XML 模式,它指出 ““日期对象”是一个具有年、月和日属性的对象,就像那些 dateTime对象,加上一个可选的时区值时区属性。"

我的问题是,当我已经在传递指定时区的 DateTime 时,如何才能在我的 SOAP XML 中包含这个可选的时区属性而不仅仅是日期?

【问题讨论】:

    标签: c# date datetime soap wsdl


    【解决方案1】:

    删除属性似乎有效:

    [System.Xml.Serialization.XmlElementAttribute(DataType="date")]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 2014-07-05
      • 2011-01-20
      相关资源
      最近更新 更多