コード例 #1
0
        public void DateParseHandling()
        {
            string json = @"[""1970-01-01T00:00:00Z"",""\/Date(0)\/""]";

            JsonTextReader reader = new JsonTextReader(new StringReader(json));
            reader.DateParseHandling = Json.DateParseHandling.DateTime;

            Assert.True(reader.Read());
            Assert.True(reader.Read());
            Assert.Equal(new DateTime(DateTimeUtils.InitialJavaScriptDateTicks, DateTimeKind.Utc), reader.Value);
            Assert.Equal(typeof(DateTime), reader.ValueType);
            Assert.True(reader.Read());
            Assert.Equal(new DateTime(DateTimeUtils.InitialJavaScriptDateTicks, DateTimeKind.Utc), reader.Value);
            Assert.Equal(typeof(DateTime), reader.ValueType);
            Assert.True(reader.Read());

#if !NET20
            reader = new JsonTextReader(new StringReader(json));
            reader.DateParseHandling = Json.DateParseHandling.DateTimeOffset;

            Assert.True(reader.Read());
            Assert.True(reader.Read());
            Assert.Equal(new DateTimeOffset(DateTimeUtils.InitialJavaScriptDateTicks, TimeSpan.Zero), reader.Value);
            Assert.Equal(typeof(DateTimeOffset), reader.ValueType);
            Assert.True(reader.Read());
            Assert.Equal(new DateTimeOffset(DateTimeUtils.InitialJavaScriptDateTicks, TimeSpan.Zero), reader.Value);
            Assert.Equal(typeof(DateTimeOffset), reader.ValueType);
            Assert.True(reader.Read());
#endif

            reader = new JsonTextReader(new StringReader(json));
            reader.DateParseHandling = Json.DateParseHandling.None;

            Assert.True(reader.Read());
            Assert.True(reader.Read());
            Assert.Equal(@"1970-01-01T00:00:00Z", reader.Value);
            Assert.Equal(typeof(string), reader.ValueType);
            Assert.True(reader.Read());
            Assert.Equal(@"/Date(0)/", reader.Value);
            Assert.Equal(typeof(string), reader.ValueType);
            Assert.True(reader.Read());

#if !NET20
            reader = new JsonTextReader(new StringReader(json));
            reader.DateParseHandling = Json.DateParseHandling.DateTime;

            Assert.True(reader.Read());
            reader.ReadAsDateTimeOffset();
            Assert.Equal(new DateTimeOffset(DateTimeUtils.InitialJavaScriptDateTicks, TimeSpan.Zero), reader.Value);
            Assert.Equal(typeof(DateTimeOffset), reader.ValueType);
            reader.ReadAsDateTimeOffset();
            Assert.Equal(new DateTimeOffset(DateTimeUtils.InitialJavaScriptDateTicks, TimeSpan.Zero), reader.Value);
            Assert.Equal(typeof(DateTimeOffset), reader.ValueType);
            Assert.True(reader.Read());


            reader = new JsonTextReader(new StringReader(json));
            reader.DateParseHandling = Json.DateParseHandling.DateTimeOffset;

            Assert.True(reader.Read());
            reader.ReadAsDateTime();
            Assert.Equal(new DateTime(DateTimeUtils.InitialJavaScriptDateTicks, DateTimeKind.Utc), reader.Value);
            Assert.Equal(typeof(DateTime), reader.ValueType);
            reader.ReadAsDateTime();
            Assert.Equal(new DateTime(DateTimeUtils.InitialJavaScriptDateTicks, DateTimeKind.Utc), reader.Value);
            Assert.Equal(typeof(DateTime), reader.ValueType);
            Assert.True(reader.Read());
#endif
        }