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

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

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

Вопрос

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

Ответы