Beispiel #1
0
        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);
        }
Beispiel #2
0
 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");
         }
     }
 }