如何在WCF OperationContract参数中生成xs:Date?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

对于仅用于表示日期的OperationContract的参数(无时间组件或时区指示符),最好使用xs:Date,以避免客户端和服务器之间的时区转换出现歧义或问题。

WCF目前仅支持用于序列化DateTime参数的xs:DateTime。

使用将被序列化为xs:Date的参数来生成OperationContract的最简单方法是什么?

我想有一个自定义的.NET类型“公共结构DateOnly”或类似的,隐式转换为/从一个标准的DateTime,将以某种方式自动生成wsdl为xs:Date。

这是可能的,我将如何去实施它?

如果可能的话,我怀疑这个解决方案可能涉及在自定义类型上使用XmlSchemaProviderAttribute,但是我在这个属性上找到的任何文档似乎都有点不透明。

我发现很难相信这会增加获得解决方案的可能性,但我会遵循该网站的建议并开始奖励。

为了清楚起见,赏金的条件是提供构建解决方案所需的所有信息,以便WCF OperationContract的参数可以是:

  • 序列化为ws:Date并在生成的WSDL中进行描述。
  • 是System.DateTime值,或者可以隐式地投射到/从DateTime中。
提问于
用户回答回答于

指定了一个要求将xs:Date作为操作中的参数。事情是,有一种正式的方式来指定这样的需求:WSDL。如果我这样做,我会使用WSDL First方法。从一个定义你想要的合约的WSDL开始,包括界面中的xs:date,无论你想要它在哪里。然后使用svcutil.exe生成服务存根。记得传入/ serializer:xmlSerializer。

用户回答回答于

扫码关注云+社区