2011-12-13 66 views
2

我正在使用WCF Web API Preview 6及其內置的測試客戶端通過Id請求資源。該對象返回除了'CreateDate'和'LastModifiedDate'類型爲DateTimeOffset且爲空的所有數據。我曾嘗試通過調用DateTimeOffset.UtcNowDateTimeOffset.Now來手動設置值,儘管值設置在對象上,但它們永遠不會傳遞到響應中的另一端。WCF Web API DateTimeOffset問題

我也測試了這個,通過改變我的屬性類型到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

我也在過濾問題上向WCF Web API codeplex站點提交了this錯誤報告。但是,這是兩個多星期前,並沒有任何迴應。

經過很多小時的測試和調試,我在這個選項上用完了!所以如果有人能給我提供一些有用的提示,我們將非常感激。

回答

3

這不是Web API問題,它是Microsoft序列化問題。 XmlSerializer不處理DateTimeOffset。我相信它與TimeSpan有同樣的問題。

只需在您的對象上實現IXMLSerializable並自己處理它。

請看這裏How can I XML Serialize a DateTimeOffset Property?