public static object DecodeValue(object value, Type targetType) { if (value == null) { return(null); } if (JsonBuilder.IsSupported(value)) { value = ConvertValue(value, targetType); } // use a registered decoder if (value != null && !targetType.IsInstanceOfType(value)) { Decoder decoder = GetDecoder(targetType); value = decoder(targetType, value); } if (value != null && targetType.IsInstanceOfType(value)) { return(value); } Console.WriteLine("Couldn't decode: " + targetType); return(null); }
public static void EncodeValue(object value, JsonBuilder builder) { if (JsonBuilder.IsSupported(value)) { builder.AppendValue(value); } else { Encoder encoder = GetEncoder(value.GetType()); if (encoder != null) { encoder(value, builder); } else { Console.WriteLine("Encoder for " + value.GetType() + " not found"); } } }