【发布时间】: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