我在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属性而不是日期呢?
答案 0 :(得分:0)
删除属性似乎可行:
[System.Xml.Serialization.XmlElementAttribute(DataType="date")]