在WSDL日期字段中包含时区信息

时间:2018-12-04 15:42:36

标签: c# date datetime soap wsdl

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

[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-01 T00:00:00 + 01:00 < / strong>)。

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

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

1 个答案:

答案 0 :(得分:0)

删除属性似乎可行:

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