public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { Guard.NotNull(writer, "writer"); if (value == null) { writer.WriteNull(); } var json = (IJsonSerializable)value; var jsonValue = json.ToJson(); if (jsonValue == null) { writer.WriteNull(); } else { writer.WriteValue(jsonValue); } }