Ejemplo n.º 1
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader.TokenType != JsonToken.String)
            {
                throw new JsonSerializationException(string.Format("Cannot convert non-string value to {0}.", objectType));
            }

            var enumValue = GoogleMappingHelper.StringToEnum(reader.Value, objectType);

            return(Enum.Parse(objectType, enumValue));
        }
Ejemplo n.º 2
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            // We don't know the real types at compile time, so we'll have to use this lame thing.
            var dictionary = (IDictionary)value;

            var mappedDictionary = dictionary
                                   .Keys
                                   .OfType <object>()
                                   .Select(k => new KeyValuePair <string, object>(GoogleMappingHelper.EnumToString(k), dictionary[k]))
                                   .ToDictionary(kvp => kvp.Key, kvp => kvp.Value);

            serializer.Serialize(writer, mappedDictionary);
        }
Ejemplo n.º 3
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteValue(GoogleMappingHelper.EnumToString(value));
 }