Nesne basit bir türse, ancak nesne daha karmaşık olduğunda işe yaramazsa iyi çalışan bir Dictionary<string, object>
seri hale getirmeye/kaldırmaya çalışıyorum.Seri hale getirme/serpiştirme JSON.NET ile nesne tanımı
Bu sınıf var:
Benim sözlüğündepublic class UrlStatus
{
public int Status { get; set; }
public string Url { get; set; }
}
ben "Zincir yönlendir" bir anahtar ve "Durum" tuşları ile birkaç basit dizeleri ile List<UrlStatus>
ekleyin "URL", "Ana URL" . Geri Json.NET dan alıyorum dize şöyle görünür:
{"$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"}]}
kod ben gibi görünüyor seri hale getirmek için kullanıyorum:
: yapıyorum serisiniJsonConvert.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,
});
Sözlük geri geliyor, tüm dizeler düzgün geliyor, ancak Liste düzgün seri hale gelmiyor. Bu, Dünya'da yine bu dizeyi deserailize edebilirsiniz Tabii
{[
{
"$type": "XYZ.TestFramework.Core.Entities.UrlStatus, XYZ.TestFramework.Core",
"Status": 301,
"Url": "/how_5615409_create-pdfs-using-bean.html"
}
]}
olarak gelir ve ben doğru nesneyi almak, ama JSON.Net benim için yapılması gereken gibi görünüyor. Açıkçası yanlış bir şey yapıyorum ama ne olduğunu bilmiyorum.
yine emin olmak için. –
Sadece en son yapı 53965'i denedim, hala işe yaramadı. –
TypeNameHandling = TypeNameHandling.All hile oldu. –