SORU
2 Temmuz 2009, PERŞEMBE


DataContractSerializer't benim kurucusunu çağırmak değil mi?

Bir nesneyi kaldırmada,. düşündüm tamamen imkansız olan sadece çılgınca bir şey fark ettim : ^strong>DataContractSerializer kurucu aramıyor!

Örneğin: bu sınıf

[DataContract]
public class Book
{
    public Book()
    { // breakpoint here
    }

    [DataMember(Order = 0)]
    public string Title { get; set; }
    [DataMember(Order = 1)]
    public string Author { get; set; }
    [DataMember(Order = 2)]
    public string Summary { get; set; }
}

Bu sınıfın bir nesnesi ben serisini ne zaman, kesme isabet. Kesinlikle yalnızca bu nesne için yapıcı olduğundan mümkündür, nasıl hiçbir fikrim yok !

Belki de ek bir yapıcı derleyici tarafından oluşturulan DataContract öznitelik diye düşündüm, ama yansıma yoluyla bulamadım...

Bilmek istediğim şey bu : nasıl benim sınıfın bir örneği kurucu denir olmadan oluşturulacak? olabilir mi?

OnDeserializing öznitelik kaldırması başladığında benim nesneyi başlatmak için kullanabileceğimi biliyorum, bu sorumu konusu değildir. NOT:

CEVAP
2 Temmuz 2009, PERŞEMBE


DataContractSerializer (BinaryFormatter) kullanmazherhangi birkurucu. Boş bellek olarak da oluşturur.

Örneğin:

    Type type = typeof(Customer);
    object obj = System.Runtime.Serialization.
        FormatterServices.GetUninitializedObject(type);

Varsayım seri kaldırma işlemi (veya gerekirse geri) tam olarak başlatılacaktır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • engineerguy

    engineerguy

    10 Ocak 2010
  • guau . .

    guau . .

    25 Ocak 2008
  • Wii Minute Radio

    Wii Minute R

    31 Mayıs 2008