public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { object myType = null; // This is really tacky, but I am not sure how else to grab the real type and real name. string EnumName = Regex.Replace(objectType.FullName, @".*SurveyMonkey\.(.*), Survey.*", "$1"); Type enumType = EnumRenameMap.GetEnumObject(EnumName); if (enumType == null) { enumType = objectType; EnumName = objectType.Name; } string mappedValue = EnumRenameMap.MappedValue(EnumName, (string)reader.Value); myType = Enum.Parse(enumType, mappedValue); return(myType); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { Type myType = value.GetType(); writer.WriteValue(EnumRenameMap.MappedName(myType.Name, Enum.GetName(myType, value))); }