Esempio n. 1
0
        public void SerializeInterfaceTest()
        {
            IUnionSample foo = new FooClass {
                XYZ = 9999
            };

            var bytes = JsonSerializer.Serialize(foo); // IUnionSample

            Assert.Throws <InvalidOperationException>(() => JsonSerializer.Deserialize <IUnionSample>(bytes));
            var newFoo = JsonSerializer.Deserialize <FooClass>(bytes);

            Assert.NotNull(newFoo);
            Assert.IsType <FooClass>(newFoo);
            // 已出错,XYZ按正常逻辑应为9999
            Assert.Equal(0, newFoo.XYZ);

            bytes  = Utf8JsonMessageFormatter.DefaultInstance.Serialize(foo);
            newFoo = Utf8JsonMessageFormatter.DefaultInstance.Deserialize <FooClass>(bytes);
            Assert.Equal(9999, newFoo.XYZ);

            bytes  = Utf8JsonMessageFormatter.DefaultInstance.SerializeObject(foo);
            newFoo = (FooClass)Utf8JsonMessageFormatter.DefaultInstance.Deserialize(typeof(FooClass), bytes);
            Assert.Equal(9999, newFoo.XYZ);
            newFoo = (FooClass)Utf8JsonMessageFormatter.DefaultInstance.Deserialize <IUnionSample>(typeof(FooClass), bytes);
            Assert.Equal(9999, newFoo.XYZ);

            Assert.Throws <InvalidOperationException>(() => Utf8JsonStandardResolver.Register(ImmutableCollectionResolver.Instance));
        }
Esempio n. 2
0
 static Utf8JsonTests()
 {
     Utf8JsonStandardResolver.TryRegister(ImmutableCollectionResolver.Instance);
 }