WCF和日期时间解析?

时间:2015-07-01 10:48:40

标签: c# web-services wcf datetime datacontract

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

当客户端将此类字符串发送到此DateTime字段

时,会出现异常报告
"2018-04-00T00:00:00"

我知道这不是一个正确的日期时间,但根据BizTalk用户这是一个Web服务标准吗?

那么我应该如何处理WCF?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

对我而言,这意味着改变的负担在呼叫者方面。完全停止。问题不在于他们发送格式错误的数据,而是他们发送的数据非常糟糕。

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