几年来,我一直在使用 VB.NET 构建企业软件,但直到最近才开始在 VS2010 Express 中使用 XNA 创建游戏,并且一直在努力过渡到 C#。
我有以下实体:
public class MyEntity
{
public String Name { get; set; }
public Microsoft.Xna.Framework.Color Colour { get; set; }
public MyEntity(string name, Microsoft.Xna.Framework.Color colour)
{
this.Name = name;
this.Colour = colour;
}
}
我打算将此类的数据存储在 JSON 文件中,例如:
{
"MyEntities": [
{"Name": "Entity1", "Colour": {"163", "79", "79"}},
{"Name": "Entity2", "Colour": {"147", "67", "67"}}
]
}
我知道上面的 JSON 是不正确的,但我无法弄清楚如何正确存储颜色的 RGB 值。
此外,我正在努力寻找任何演示如何使用 Newtonsoft.Json 反序列化此 JSON 文件的示例。我最近的尝试显然不起作用:
public static List<MyEntity> LoadMyEntities()
{
List<MyEntity> entities = new List<MyEntity>();
using (StreamReader file = File.OpenText(@"entities.json"))
{
System.Data.DataSet ds = JsonConvert.DeserializeObject<System.Data.DataSet>(file.ReadToEnd());
System.Data.DataTable dt = ds.Tables["Entities"];
foreach (System.Data.DataRow row in dt.Rows)
{
entities.Add(new MyEntity(row["Name"].ToString(), new Microsoft.Xna.Framework.Color(row["Colour"]));
}
}
return entities;
}
任何帮助将不胜感激,因为我完全被困在这一点上。