示例#1
0
        public static void CustomAttributeOnTypeAndRuntime()
        {
            const string json = @"""1,2""";

            // Baseline
            AttributedPoint point = JsonSerializer.Deserialize <AttributedPoint>(json);

            Assert.Equal(1, point.X);
            Assert.Equal(2, point.Y);
            Assert.Equal(json, JsonSerializer.Serialize(point));

            // Now use options.
            var options = new JsonSerializerOptions();

            options.Converters.Add(new AttributedPointConverter(200));

            point = JsonSerializer.Deserialize <AttributedPoint>(json, options);

            // The runtime overrides the type attribute.
            Assert.Equal(201, point.X);
            Assert.Equal(202, point.Y);

            string jsonSerialized = JsonSerializer.Serialize(point, options);

            Assert.Equal(json, jsonSerialized);
        }
示例#2
0
        public static void CustomAttributeOnType()
        {
            const string json = @"""1,2""";

            AttributedPoint point = JsonSerializer.Deserialize <AttributedPoint>(json);

            Assert.Equal(1, point.X);
            Assert.Equal(2, point.Y);

            string jsonSerialized = JsonSerializer.Serialize(point);

            Assert.Equal(json, jsonSerialized);
        }