Я нахожусь в процессе разработки системы детализации для игры. Я создаю набор интерфейсов (IItem, IConsumable, IEquipable, IWeapon и т. Д.), Чтобы определить, какой тип функциональности возможен с элементами, а затем ряд классов (Оружие, Зелье и т. Д.) Определить фактические типы элементов.
Теперь при сохранении проигрывателя данные будут сохраняться в виде файла JSON (с использованием библиотеки JSON.NET) и будут включать в себя инвентарь проигрывателя, в который будут включены эти элементы. Проблема заключается в том, что, когда я пытаюсь десериализовать файл JSON в объект при чтении в файле, как я могу сказать библиотеке JSON.NET, какой это класс?
Одна вещь, о которой я подумал и еще не успел попробовать, - это то, что все мои объекты, которые сериализуются в JSON, имеют версию объекта DTO, которая используется вместе с библиотекой JSON.NET. Что я пытаюсь сделать, так это то, что, возможно, я мог бы добавить свойство в DTO с именем ClassType, а затем при чтении файла в приложение я сначала считал бы объект как анонимный тип. Затем, основываясь на свойстве ClassType, я бы преобразовал его в правильный тип. Вот две проблемы, с которыми я сталкиваюсь: 1. кажется, что это очень уродливое решение, и 2. я даже не уверен, возможно ли это.