public override void Write(Utf8JsonWriter writer, QueryPropertyInfo value, JsonSerializerOptions options) { if (value == null) { writer.WriteNullValue(); return; } if (value is BooleanQueryPropertyInfo bp) { writer.WriteStartObject(); BooleanQueryPropertyInfo.WriteProperties(writer, bp, options); writer.WriteEndObject(); } else if (value is DateTimeQueryPropertyInfo dp) { writer.WriteStartObject(); DateTimeQueryPropertyInfo.WriteProperties(writer, dp, options); writer.WriteEndObject(); } else if (value is EnumQueryPropertyInfo ep) { writer.WriteStartObject(); EnumQueryPropertyInfo.WriteProperties(writer, ep, options); writer.WriteEndObject(); } else { writer.WriteStartObject(); QueryPropertyInfo.WriteProperties(writer, value, options); writer.WriteEndObject(); } }