ODataライブラリのRTMバージョンにアップグレードしました。私はDateTime処理の矛盾しているものに気付きました。誰かが私が何が欠けているのかを説明できるかどうか、あるいは実際にいくつかの問題があるかどうかを知りたいと思います。 RTMライブラリに加えて、私はMS-ODATAの3/30/2012バージョンに頼っています。ODataライブラリRTM DateTime不一致
MS-ODATAは、(例えば、簡体字)次の形式でdateTimeUriLiteralを定義:
YYYY-MM-DDTHH:MM:NSはナノ秒= 1 * 7DIGIT
とMSと定義されるSS.NS -ODATAはVJsonDateTimeを恐ろしい/Date(...)/フォーマットとして定義します。
ただし、ライブラリを冗長JSONシリアライズで使用すると、VJsonDateTimeではなくdateTimeUriLiteral形式が表示されます。さらに、逆シリアル化はdateTimeUriLiteral形式のみを受け入れます。これは、仕様と実装の間に矛盾があるように見えます。
また、dateTimeUriLiteralは、(ISO 8601形式の場合のように)タイムゾーンオフセットを考慮しません。しかし、シリアル化されたdatetimeオブジェクトがDateTimeKind.Utcとして指定されている場合、ライブラリは 'Z'終了文字(UTCの場合はISO 8601)を発行することがわかります。これは、仕様と実装の間に矛盾があるようにも見えます。
また、ライブラリを使用して終端 'Z'を持つdateTimeUriLiteralを逆シリアル化すると、逆シリアル化されたオブジェクトはDateTimeKind.Localとしてマークされます。 UTC指定子に対する仕様書発行のWRTサポートがあるかどうかにかかわらず、これは正しいとは言えません。 'Z'はデシリアライズの失敗を引き起こすか、UTC(ローカルではない)とマークされた時刻になります。
こんにちは、evoskuil - 金曜日にいくつかのプレリリースビットを掲載しました。私たちはこの問題に役立つと信じています。あなたはそれらを試してブログ投稿にいくつかのフィードバックを提供できますか? http://blogs.msdn.com/b/astoriateam/archive/2012/04/20/wcf-data-services-5-1-0-rc-prerelease.aspx –