c# - 从 C# 中的 WSDL 生成的代码无法解析具有时区的日期
问题描述
我的 C# 客户端基于 WSDL 文件生成了具有以下字段的服务:
[System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=6)]
public System.DateTime SomeDate{
get {
return this.SomeDateField;
}
set {
this.SomeDateField = value;
this.RaisePropertyChanged("SomeDate");
}
}
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool SomeDateSpecified {
...
}
服务正在发送价值
<v12:SomeDate>1972-07-05+01:00</v12:SomeDate>
根据文档https://www.w3schools.com/xml/schema_dtypes_date.asp Xml DataType“日期”格式应该接受时区,但是我收到错误:
反序列化操作“...”的回复消息正文时出错。---> System.InvalidOperationException: XML 文档中存在错误 (2, 2047)。---> System.FormatException:字符串未被识别为有效的日期时间。在 System.DateTimeParse.ParseExactMultiple(String s, String[] 格式, DateTimeFormatInfo dtfi, DateTimeStyles 风格)
我知道我可以实现 IClientMessageInspector 并删除时区以便对其进行解析,但我想避免这种情况。WSDL 是由客户提供给我的
<xs:element name="SomeDate" type="xs:date" minOccurs="0">
<xs:annotation>
<xs:documentation>
...
</xs:documentation>
</xs:annotation>
</xs:element>
解决方案
推荐阅读
- php - 如何随着时间的推移积累红利?
- javascript - AJAX (XMLHttpRequest) 进度监控不适用于 Service Worker
- python - 从列表中随机抽样数字,其总和至少需要大于给定的基准
- ibm-cloud - 使用 curl 获取 IAM 令牌失败
- mysql - 如何使用节点流将大数据插入mysql?
- java - java中数组列表的问题(总是将最后一个元素放入数组中)
- tensorflow - LSTM 模型加载产生奇怪的结果,不可序列化的关键字参数错误
- gatsby - GatsbyJS 优化何时获取图像
- c - Atmel AVR ADMUX 寄存器未分配值
- python - 如何在 Python 路径之间切换?