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

  • Hak5

    Hak5

    7 EYLÜL 2005
  • OVERWERK

    OVERWERK

    6 Temmuz 2010
  • Shaollin Animes

    Shaollin Ani

    19 HAZİRAN 2013