私は数年前から 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;
}
私はこの時点で完全に立ち往生しているので、どんな支援も大歓迎です。