我有一个可互操作的WCF服务,需要为客户端提供DateTime值。
如果某个字段设置为“unlimited”(.NET中为DateTime.MaxValue
),我想提供此DateTime的最大值。但是为了保持其可互操作性并且客户将其视为“无限制”,将最大限度地传递给客户端的确切值是什么?
我很担心因为.Net DateTime.Max
内部没问题,但Linux的最大日期时间值是2038年1月19日。
我应该检查SOAP规范的datetime的最大值吗?
编辑:我真的想要使用这个DateTime值,而不在我的合同中添加任何其他字段! SOAP允许的最大日期时间是多少?由于某些原因,我无法在谷歌上找到它。
感谢。
答案 0 :(得分:0)
好的,这就是我现在正在使用的内容:
根据SOAP的日期时间描述:http://www.w3.org/TR/xmlschema-2/#dateTime,如果我理解正确,则值可能介于0001和9999之间,与.NET涵盖的非常相似。
所以我将这些值用于服务器端的最小值和最大值。在客户端,检索值并将其映射到其自身的最小值和最大值(例如linux max / min datetime)。是的,这意味着客户在SOAP通信之前/之后几乎被迫进行此映射。
<强>更新强> 从我的角度来看,我没有意识到我可以通过通道使用可以为空的值(DateTime?)。似乎我稍后了解它的存在(非常蹩脚)。