Kullanma serisini özelliklerine dönüştürücüleri Json.NET
Bir arabirim döndüren bir özellik içeren bir sınıf tanımı var.
public class Foo
{
public int Number { get; set; }
public ISomething Thing { get; set; }
}
Foo sınıfı Json.NET kullanarak seri hale getirmek için çalışırken benim gibi bir hata mesajı verir, "türünün bir örneği oluşturulamadı''. İSomething İSomething arayüz ya da soyut bir sınıf olabilir."
Bana seri kaldırma sırasında kullanmak için Something
beton sınıfı belirtmek izin verecek json.net öznitelik veya bir dönüştürücü var mı?
CEVAP
Json.NET ile yapabileceğiniz şeylerden biri
var settings = new JsonSerializerSettings();
settings.TypeNameHandling = TypeNameHandling.Objects;
JsonConvert.SerializeObject(entity, Formatting.Indented, settings);
TypeNameHandling
bayrak json.net nesnesine serisini gerektiğini bilmesini sağlayan JSON, $type
bir özellik katacak. Bu hala arayüz veya soyut temel sınıf yerine getirirken bir nesnedeki seriyi kaldırmak için izin verir.
Dezavantajı, ancak, bu çok Json olmasıdır.NET özgü. $type
Eğer tür bilgi ile seri alırsan tam bir tür olacak, deserializer bunu anlamak gerekiyor.
Belgeler: Serialization Settings with Json.NET
Ne kadar boş ise bir özelliği görmezde...
C serisini JSON ile#...
Nasıl bir NSDictionary içine bir JSON ...
Nasıl özel JsonConverter uygulamak jso...
.Net NewtonSoft farklı bir özellik adı...