辞書型の辞書のメンバーを 1 つだけ含むクラスを定義しました。JSON
シリアル化してフォーマットしたいので、 JavaScriptSerializer
.
[Serializable]
class X
{
private readonly Dictionary<string, Dictionary<string, string>> dic;
public X()
{
dic = new Dictionary<string, Dictionary<string, string>>();
}
public void Add()
{
this.dic.Add("x", new Dictionary<string, string>() { { "a", "b" } });
}
}
class Program
{
static void Main(string[] args)
{
var x = new X();
x.Add();
string msg = new JavaScriptSerializer(new SimpleTypeResolver()).Serialize(x);
var y = new JavaScriptSerializer(new SimpleTypeResolver()).Deserialize<X>(msg);
}
}
これで、上記のコードはエラー/例外なしで正常に実行されますが、結果は例外ではありません。上記のコードのクラス X のシリアル化された文字列は次のとおりです。
{"__type":"Testing.X, Testing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"}
上記のコードの問題と何が欠けているのか誰か教えてもらえますか? また、上記のクラスで、内部ディクショナリの型を次のように変更すると、Dictionary<string, IEntity>
それをシリアル化するために必要なすべての処理が行われます。