Сериализация / десериализация словаря объектов с помощью JSON.NET

Я пытаюсь сериализовать / десериализоватьDictionary<string, object> который работает нормально, если объект является простым типом, но не работает, когда объект более сложный.

У меня есть этот класс:

public class UrlStatus
{
 public int Status { get; set; }
 public string Url { get; set; }
}

В моем словаре я добавляюList<UrlStatus> с ключом «Redirect Chain» и несколькими простыми строками с ключами «Status», «Url», «Parent Url». Строка, которую я получаю из JSON.Net, выглядит следующим образом:

{"$type":"System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib","Status":"OK","Url":"http://www.ehow.com/m/how_5615409_create-pdfs-using-bean.html","Parent Url":"http://www.ehow.com/mobilearticle35.xml","Redirect Chain":[{"$type":"Demand.TestFramework.Core.Entities.UrlStatus, Demand.TestFramework.Core","Status":301,"Url":"http://www.ehow.com/how_5615409_create-pdfs-using-bean.html"}]}

Код, который я использую для сериализации, выглядит следующим образом:

JsonConvert.SerializeObject(collection, Formatting.None, new JsonSerializerSettings 
{ 
 TypeNameHandling = TypeNameHandling.Objects, 
 TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple 
});

для десериализации я делаю:

JsonConvert.DeserializeObject<T>(collection, new JsonSerializerSettings
{
 TypeNameHandling = TypeNameHandling.Objects,
 TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple, 
});

Словарь возвращается нормально, все строки возвращаются нормально, но список не десериализован должным образом. Это просто возвращается как

{[
  {
    "$type": "XYZ.TestFramework.Core.Entities.UrlStatus, XYZ.TestFramework.Core",
    "Status": 301,
    "Url": "/how_5615409_create-pdfs-using-bean.html"
  }
]}

Конечно, я могу снова удалить эту строку и получить правильный объект, но, похоже, JSON.Net должен был сделать это для меня. Очевидно, что я делаю что-то не так, но я не знаю, что это такое.

Ответы на вопрос(1)

Ваш ответ на вопрос