C# 字典复合密钥的WEB API序列化

C# 字典复合密钥的WEB API序列化,c#,json,dictionary,serialization,asp.net-web-api,C#,Json,Dictionary,Serialization,Asp.net Web Api,我正在使用WebAPI服务。我的课程如下 public class MyClass { public Dictionary<MyClass, List<MyClass>> MyDataDictionary { get; set; } public string Id { get; set; } public string Name { get; set; } public MyClass(string id, string name)

我正在使用WebAPI服务。我的课程如下

public class MyClass
{
    public Dictionary<MyClass, List<MyClass>> MyDataDictionary { get; set; }
    public string Id { get; set; }
    public string Name { get; set; }

    public MyClass(string id, string name)
    {
        Id = id;
        Name = name;
    }
}
列表总是序列化的。为什么不是关键对象,如何修复它

{  
   "Id":2,"Name":"Unknown",

   "MyDataDictionary":{  
      "*MyNamespace.MyClass*":[  
         {  
            "Id":2, "Name":"Th/Abd",
            "MyDataDictionary ":null
         }
      ]
   }
}

您希望如何将它们序列化为JSON甚至XML结构?请提供一个序列化后预期结果的示例,并向我们展示您得到的结果。请尝试@ChrisS,这是已知的Json.NET限制。看见有关其他解决方法,请参见
{  
   "Id":2,"Name":"Unknown",

   "MyDataDictionary":{  
      "*MyNamespace.MyClass*":[  
         {  
            "Id":2, "Name":"Th/Abd",
            "MyDataDictionary ":null
         }
      ]
   }
}