public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var custom = value as ICustomJson; if (custom == null) return; var json = custom.GetCustomJson(); var rawJson = json as RawJson; if (rawJson != null) writer.WriteRawValue(rawJson.Data); else serializer.Serialize(writer, json); }