【发布时间】:2009-04-22 10:30:11
【问题描述】:
对于仅表示日期的 OperationContract 参数(无时间组件或时区指示符),最好使用 xs:Date,以避免客户端和服务器之间的时区转换出现任何歧义或问题。
WCF 目前仅支持 xs:DateTime 用于序列化 DateTime 参数。
生成带有将被序列化为 xs:Date 参数的 OperationContract 的最简单方法是什么?
我正在考虑使用自定义 .NET 类型“public struct DateOnly”或类似类型,隐式转换为/从标准 DateTime 转换,以某种方式自动生成 wsdl 作为 xs:Date。
这可能吗?我将如何实施它?
如果可能的话,我怀疑该解决方案可能涉及在自定义类型上使用 XmlSchemaProviderAttribute,但我找到的有关此属性的任何文档似乎都有些不透明。
更新
我很难相信它会增加获得解决方案的可能性,但我会听从网站的建议并开始赏金。
为了清楚起见,赏金的条件是提供构造解决方案所需的所有信息,以便 WCF OperationContract 的参数可以是:
序列化为 ws:Date 并在生成的 WSDL 中如此描述。
可以是 System.DateTime 值,也可以隐式转换为 DateTime 或从 DateTime 转换。
【问题讨论】:
-
我在 connect.microsoft.com/wcf/feedback/… 找到了一个封闭的 Connect 建议。