Example #1
0
        public override object ReadJson(JsonReader reader,
                                        Type t,
                                        object existingValue,
                                        JsonSerializer serializer)
        {
            switch (reader.TokenType)
            {
            case JsonToken.Boolean:
                bool boolValue = serializer.Deserialize <bool>(reader);

                return(new Line
                {
                    Bool = boolValue
                });

            case JsonToken.StartObject:
                OverlayMarkDef objectValue = serializer.Deserialize <OverlayMarkDef>(reader);

                return(new Line
                {
                    OverlayMarkDef = objectValue
                });
            }

            throw new Exception("Cannot unmarshal type Line");
        }
        public override object ReadJson(JsonReader reader,
                                        Type t,
                                        object existingValue,
                                        JsonSerializer serializer)
        {
            switch (reader.TokenType)
            {
            case JsonToken.Boolean:
                bool boolValue = serializer.Deserialize <bool>(reader);

                return(new PointUnion
                {
                    Bool = boolValue
                });

            case JsonToken.String:
            case JsonToken.Date:
                string stringValue = serializer.Deserialize <string>(reader);

                if (stringValue == "transparent")
                {
                    return(new PointUnion
                    {
                        Enum = PointEnum.Transparent
                    });
                }

                break;

            case JsonToken.StartObject:
                OverlayMarkDef objectValue = serializer.Deserialize <OverlayMarkDef>(reader);

                return(new PointUnion
                {
                    OverlayMarkDef = objectValue
                });
            }

            throw new Exception("Cannot unmarshal type PointUnion");
        }