我正在處理引用c#WinRT項目的Windows 8 Metro應用程序。除此之外,c#項目向Azure服務發出了對Azure服務的Web請求,以對SQL Azure數據庫執行CRUD操作。WinRT序列化DateTimeOffset
當對服務執行POST操作時,我將序列化一個類的實例並將其放入請求的主體中。
public sealed class Foo
{
int FooId { get; set; }
DateTimeOffset FooDate { get; set; }
}
當這是使用DataContractJSONSerializer
序列化,結果是這樣的:
{"FooId":1,"FooDate":{"DateTime":"/Date(1342732970000)/","OffsetMinutes":-420}}
僅供參考,這是2012年7月19日下午2點22分50秒-07:00。
好的很好......唯一的問題是Azure服務期望的只是DateTime
而不是DateTimeOffset
。我不擁有Azure服務,因此我無法更改其行爲。
所以(忽略我失去了偏移)我需要的是這個序列化到:
{"FooId":1,"FooDate":"/Date(1342732970)/"}
我的第一種方法是一個新的別名DateTime
財產/數據成員添加到類吸氣劑返回DateTimeOffset
的DateTime
部分。但是,WinRT不支持DateTime類型。
有一對夫婦的哈克的方式來解決這個問題,但我想看看是否有一個優雅的方式訴諸這些人之前做到這一點:在POST之前
- 正則表達式的系列化結果返回一個JSON格式的日期
感謝