У меня есть базовый класс, который я использую jsonderivedtype < / code> для выполнения сериализации / десериализации производных типов. Работает хорошо.
Однако вместо того, чтобы добавлять атрибут jsonderivedtype явно всякий раз, когда новый производный тип добавляется в приложение и восстанавливается следующим образом: Br />[JsonDerivedType(typeof(MyConfigDerived), typeDiscriminator: "derived")]
[JsonDerivedType(typeof(MyConfigAlternate), typeDiscriminator: "alternate")]
[JsonDerivedType(typeof(MyConfigAnother), typeDiscriminator: "another")]
< /code>
Я бы очень хотел обнаружить все производные типы и автоматически добавить их во время выполнения, основываясь на соглашении. < /p>
Итак, если у меня есть база класс как это: < /p>
[JsonDerivedType(typeof(MyConfigBase), typeDiscriminator: "base")]
public class MyConfigBase { ... }
< /code>
Я бы хотел просто объявить: < /p>
public class MyConfigDerived : MyConfigBase { ... }
public class MyConfigAlternate : MyConfigBase { ... }
public class MyConfigAnother : MyConfigBase { ... }
< /code>
и автоматически открыть их через систему типов при запуске, чтобы все они работали. Причина, по которой я хотел бы избежать использования атрибутов, заключается в том, что я хочу, чтобы сотрудники имели возможность регистрировать новые типы и правильно сериализовать/понижали, без необходимости изменения атрибутов в базовом классе, чтобы людям было легче добавить новые Реализации. < /p>
Я нашел эту статью, которая, кажется, как-то идет на полпути, но у кого-то есть пример кода с автоматической регистрацией всех, полученных на всех. что Мне нужно?
Подробнее здесь: https://stackoverflow.com/questions/794 ... derivedtyp