Описание:
При разработке на .NET часто возникает необходимость сериализовать и десериализовать иерархии типов — например, поля форм с разными типами значений. В .NET экосистеме для этого традиционно использовали Newtonsoft.Json, но с переходом на System.Text.Json разработчики сталкиваются с ограничениями — встроенная поддержка полиморфизма в STJ неполная и требует ручной настройки.
Тезисы:
- Когда и зачем нужна полиморфная сериализация? (на примере моковой реализации backend-driven ui)
- Как работают Newtonsoft.Json и System.Text.Json «из коробки» при сериализации и десериализации иерархий.
- Как включить поддержку полиморфизма в:
1. Newtonsoft.Json (через TypeNameHandling)
2. System.Text.Json (через JsonDerivedType)
3. Сценариях, где JsonDerivedType невозможен — кастомный TypeInfoResolver и JsonDerivedTypeRegistry.
- Готовые фрагменты кода и архитектура, подходящая для DI и модульного расширения.
- Бенчмарк производительности трёх подходов: Newtonsoft, STJ с атрибутами, STJ с TypeInfoResolver.
Для кого:
.NET-разработчики уровня middle и выше, работающие с сериализацией и API. Особенно полезно тем, кто планирует миграцию на System.Text.Json.
Требуемый уровень подготовки:
Средний: базовые знания ООП и сериализации в .NET, понимание работы JSON.