WCF Web API DateTimeOffset 问题

标签 wcf wcf-web-api

我正在使用 WCF Web API Preview 6 及其内置测试客户端来通过 Id 请求资源。该对象返回其所有数据,但“CreateDate”和“LastModifiedDate”属性除外,这些属性的类型为 DateTimeOffset 并且为空。我尝试通过调用 DateTimeOffset.UtcNowDateTimeOffset.Now 手动设置值,尽管这些值是在对象上设置的,但它们永远不会到达对象中的另一端回应。

我还通过将属性类型更改为 DateTime 并使用 DateTime.Now 手动设置其值来对此进行了测试,一切正常,我得到了看起来像DateTimeOffset 值。

<CreateDate>2011-12-13T16:15:47.4269538+00:00</CreateDate>
<LastModifiedDate>2011-12-13T16:15:47.4269538+00:00</LastModifiedDate>

有谁知道在预览版 6 中使用 DateTimeOffset 类型是否存在问题,或者是我做错了什么?我在使用 oData 过滤字段时遇到了类似的问题(请参阅 SO question )

我还提交了this向 WCF Web API Codeplex 站点报告有关过滤问题的错误。然而,这已经是两个多星期前的事了,还没有任何回应。

经过几个小时的测试和调试,我已经没有这个选项了!因此,如果有人能为我提供一些有用的提示,我将不胜感激。

最佳答案

这不是 Web API 问题,而是 Microsoft 序列化问题。 XmlSerializer 不处理 DateTimeOffset。我相信 TimeSpan 也有同样的问题。

只需在您的对象上实现 IXMLSerialized 并自行处理即可。

参见此处How can I XML Serialize a DateTimeOffset Property?

关于WCF Web API DateTimeOffset 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8492583/

相关文章:

.net - WCF JSON SSL 配置

c# - 如何在 Visual Studio 2017 中添加服务引用

java - 代理 Java Web 服务

c# - 如何为 Odata 创建按 Id 获取的查询表达式

asp.net-mvc-3 - 在 MVC3 中使用 WebApi

wcf - REST 中的批处理

wcf - 如何通过互联网使用 WCF 双服务?

c# - 集成 DotNetOpenAuth 和 WCF WebAPI

json - 如何在字符串中传递 Json 数组 - asp 中的 webapi

asp.net-mvc - MVC4 WebAPI 原因短语?