SORU
12 ŞUBAT 2010, Cuma


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
6 Mart 2010, CUMARTESİ


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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • michaeljacksonVEVO

    michaeljacks

    2 EYLÜL 2009
  • TheScorpioTechno

    TheScorpioTe

    15 Aralık 2010
  • UCBerkeley

    UCBerkeley

    3 Mayıs 2006