【发布时间】:2011-03-21 15:56:49
【问题描述】:
我正在为游戏设计一个项目化系统。我正在创建一堆接口(IItem、IConsumable、IEquipable、IWeapon 等)来定义物品可以使用的功能类型,然后定义一些类(武器、药水等)实际项目类型。
现在,当保存播放器时,数据将存储为 JSON 文件(使用 JSON.NET 库),并将包含包含这些物品的播放器库存。问题是,当我在读取文件时尝试将 JSON 文件反序列化为对象时,我如何能够告诉 JSON.NET 库这是什么类型的类?
我想到但还没有时间尝试的一件事是,我所有被序列化为 JSON 的对象都有一个与 JSON.NET 库结合使用的对象的 DTO 版本。我想尝试的是,也许我可以在 DTO 中添加一个名为 ClassType 的属性,然后在将文件读入应用程序时,我会首先将对象作为匿名类型读入。然后基于 ClassType 属性,我会将其转换为正确的类型。我遇到的两个问题是:1. 这似乎是一个非常丑陋的解决方案;2. 我什至不确定这是否可能。
【问题讨论】:
标签: c# json interface class-design json.net