WCF 和日期时间解析?

WCF and Datetime parsing?

我得到了一个包含服务方法的 WCF 服务 (Webservice HTTP),此方法采用包含 DateTime?(可为空)的数据合同。

当客户端向此 DateTime 字段发送这样的字符串时,现在有异常报告

"2018-04-00T00:00:00"

我知道这不是正确的日期时间,但根据 BizTalk 用户的说法,这是网络服务标准?

那么我应该如何使用 WCF 处理这个问题?

WCf 使用 this DateTime xml schema。根据架构,格式似乎有效,但由于第三个参数 (00) 表示日期和正确的日期参数从 01 开始,因此失败。

我可以看出这是一种灰色区域,但事实是序列化程序无法处理正在发送的数据。序列化程序是防止消息中不良数据的第一道防线,也是捕获所有可能的不良数据排列的唯一方法(除非您有 500 行验证代码)。如果明天他们决定向您发送“2018-78-45T00:00:00”之类的日期怎么办?

对我来说,这意味着改变的负担在来电者一方。句号。问题不在于他们发送的数据格式不正确,而是他们发送的数据非常糟糕。

如果他们无法提供正确填充的日期值,那么将包含该信息的异常返回给他们是一个完全合理的解决方案。