Сделаю заключение долгих попыток десериализации сложных объектов, советов и рекомендаций.
Первое что нужно понимать при сериализации и десериализации, что объект должен иметь возможность полного построения, т.е., иметь public
конструктор и все свойства должны быть set
(Именно public set
, init
так же не подходит)
Проблема в том, что сериализаторы (По крайней мере те, который я использовал, это Newtonsoft.Json, System.Json и Utf8Json) не работают с System.Reflection
, т.е., они могут восстановить только те поля/свойства, который доступны публично
BinarySerialization
так же не подходит
Почему я не встречал такой ошибки раньше? Потому что на проектах типу web api + react
основной единицей транспортировки данных были модели, так называемые DTO
(Data Transfer Object), которые сами по себе имеют только публичные свойства и стандартный публичный конструктор без параметров и эти объекты отлично работают для отправки информации через http