我正在使用C
#和Newtonsoft.Json
。我正在使用RPG
将字符保存到磁盘Json
。 Characters
包含inventory
。
我的' Inventory
'类:
public class Inventory
{
public Dictionary<EquipmentSlot, Equipment> Equiped = new Dictionary<EquipmentSlot, Equipment>();
public Dictionary<CurrencyType, float> Currency = new Dictionary<CurrencyType, float>();
public Item[] Loot = new Item[LootLimit];
//some extra methods and stuff
}
&#34; Equipment
&#34;是一个abstract class
来自Armour
&#34;,&#34; Weapon
&#34;和&#34; Shield
&#34;是派生的。 &#34; Armour
&#34;不是non-abstract class
,&#34; Weapon
&#34;目前是abstract class
,Shield
是non-abstract
,因为我还没有设计它。
问题在于,因为对角色设备的引用被转换为&#34; Dictionary<EquipmentSlot, Equipment>
&#34;,Json
仅保存&#34; Equipment
&#34;基地class
。然后,当它反序列化时,它会尝试实例化&#34; Equipment
&#34;和崩溃是因为&#34; Equipment
&#34;是abstract
。
我可以看到这对我来说是个大问题,因为我到处都有Dictionaries
,Lists
,Arrays
和其他类型为基类的数据结构member是派生的class
。