как это делать стандарным System.Text.Json.Serialization
class A;
class B : A;
class C : A;
class J
{
A a;
}
JsonSerializer.Serialize(new J{a = B});
JsonSerializer.Serialize(new J{a = C});
я попробовал так
Options = new JsonSerializerOptions{};
Options.Converters.Add(new AJsonConverter());
public class AJsonConverter : JsonConverter<A>
{
public override void Write(Utf8JsonWriter writer, A value, JsonSerializerOptions options)
{
writer.WriteStartObject();
writer.WritePropertyName(value.GetType().Name);
writer.WriteRawValue(JsonSerializer.Serialize(value, options));
writer.WriteEndObject();
}
}
попробовал и бросил, потому что нужно передавать options а это приводит к рекурсии
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.