Beispiel #1
0
        public override object ReadJson(JsonReader reader,
                                        Type t,
                                        object existingValue,
                                        JsonSerializer serializer)
        {
            switch (reader.TokenType)
            {
            case JsonToken.Null: return(new BoolBinParams());

            case JsonToken.Boolean:
                bool boolValue = serializer.Deserialize <bool>(reader);

                return(new BoolBinParams
                {
                    Bool = boolValue
                });

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

                return(new BoolBinParams
                {
                    BinParams = objectValue
                });
            }

            throw new Exception("Cannot unmarshal type BoolBinParams");
        }
Beispiel #2
0
        public override object ReadJson(JsonReader reader,
                                        Type t,
                                        object existingValue,
                                        JsonSerializer serializer)
        {
            switch (reader.TokenType)
            {
            case JsonToken.Null: return(new FluffyBin());

            case JsonToken.Boolean:
                bool boolValue = serializer.Deserialize <bool>(reader);

                return(new FluffyBin
                {
                    Bool = boolValue
                });

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

                if (stringValue == "binned")
                {
                    return(new FluffyBin
                    {
                        Enum = BinEnum.Binned
                    });
                }

                break;

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

                return(new FluffyBin
                {
                    BinParams = objectValue
                });
            }

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