Десериализация JSON в унаследованные типы

У меня есть таблица данных в моей базе данных, где я храню различные настройки. Поскольку они бывают любого типа (даже графы сложных объектов), я решил хранить их значения в виде сериализованных строк JSON.

Допустим, я сериализовал файл List<ItemBase>. Сериализованная строка выглядит просто отлично. Но проблема в том, что элементы списка имеют различные типы, которые унаследованы от ItemBase (который также может быть абстрактным для меня).

Вопрос

Какой класс/библиотеку сериализации (де) следует использовать, чтобы мои строки JSON были правильно десериализованы для корректных экземпляров объектов.


person Robert Koritnik    schedule 25.11.2010    source источник


Ответы (1)


json.net имеет возможность сохранять ссылки

И он поддерживает сохранение типа

person CodesInChaos    schedule 29.11.2010
comment
Сохранение ссылок - это не то, что я ищу, и это другая функциональность. Но наследование типов... - person Robert Koritnik; 29.11.2010
comment
Насколько я понимаю в документации, параметр TypeNameHandling заставляет json.net хранить имя типа. И вы говорили о сложных графах объектов, поэтому я думаю, что вам тоже нужна эта функция. - person CodesInChaos; 29.11.2010
comment
Спасибо @CodeInChaos. Это именно то, что я искал. - person Robert Koritnik; 29.11.2010