コード例 #1
0
        public void AbstractClass()
        {
            JsonSerializerOptions options = new JsonSerializerOptions();

            options.SetupExtensions();
            options.GetObjectMappingRegistry().Register <AbstractBar>(objectMapping =>
                                                                      objectMapping
                                                                      .AutoMap()
                                                                      .MapCreator(o => new Bar())
                                                                      );

            const string            json = @"{""Bar"":{""Id"":12}}";
            ObjectWithAbstractClass obj  = Helper.Read <ObjectWithAbstractClass>(json, options);

            Assert.NotNull(obj);
            Assert.NotNull(obj.Bar);
            Assert.IsType <Bar>(obj.Bar);
            Assert.Equal(12, obj.Bar.Id);

            Helper.TestWrite(obj, json, options);
        }
コード例 #2
0
        public void AbstractClass()
        {
            CborOptions options = new CborOptions();

            options.Registry.ObjectMappingRegistry.Register <AbstractBar>(objectMapping =>
                                                                          objectMapping
                                                                          .AutoMap()
                                                                          .MapCreator(o => new Bar())
                                                                          );

            const string            hexBuffer = "A163426172A16249640C";
            ObjectWithAbstractClass obj       = Helper.Read <ObjectWithAbstractClass>(hexBuffer, options);

            Assert.NotNull(obj);
            Assert.NotNull(obj.Bar);
            Assert.IsType <Bar>(obj.Bar);
            Assert.Equal(12, obj.Bar.Id);

            Helper.TestRead(hexBuffer, (ObjectWithAbstractClass)null, typeof(CborException));

            Helper.TestWrite(obj, hexBuffer, null, options);
        }