Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Varsayılan olarak, DataContractSerializer genel olarak görünen tüm türleri serileştirir. Türdeki tüm genel okuma/yazma özellikleri ve alanları serileştirilir.
Varsayılan davranışı, türlere ve üyelere DataContractAttribute ve DataMemberAttribute özniteliklerini uygulayarak değiştirebilirsiniz. Bu özellik, kontrolünüz altında olmayan ve öznitelik eklemek için değiştirilemeyen türlere sahip olduğunuz durumlarda yararlı olabilir. DataContractSerializer "işaretsiz" türleri tanır.
Serileştirme Varsayılanları
DataContractAttribute ve DataMemberAttribute özniteliklerini uygulayarak türlerin ve üyelerin serileştirilmesini tam olarak kontrol edebilir veya özelleştirebilirsiniz. Ayrıca, bu öznitelikleri özel alanlara uygulayabilirsiniz. Ancak, bu özniteliklerle işaretlenmemiş türler bile serileştirilir ve seri durumdan çıkarılır. Aşağıdaki kurallar ve özel durumlar geçerlidir:
, DataContractSerializer yeni oluşturulan türlerin varsayılan özelliklerini kullanarak öznitelikleri olmayan türlerden bir veri sözleşmesi çıkartır.
getözniteliğini bu üyeye uygulamadığınız sürece, tüm ortak alanlar ile ortaksetve IgnoreDataMemberAttribute yöntemlere sahip özellikler seri hale getirilir.Serileştirme semantiği XmlSerializer'ye benzerdir.
İşaretsiz türlerde, yalnızca parametresiz oluşturuculara sahip genel türler serileştirilir. Bu kurala istisna olarak ExtensionDataObject, IExtensibleDataObject arabirimiyle birlikte kullanılır.
Salt okunur alanlar,
getveyasetyöntemi olmayan özellikler ve iç veya özelsetya dagetyöntemlere sahip özellikler serileştirilmez. Bu tür özellikler yoksayılır ve yalnızca get-only koleksiyonları dışında özel durum oluşturmaz.XmlSerializer öznitelikleri (örneğin
XmlElement,XmlAttribute,XmlIgnore,XmlIncludeve benzerleri) yoksayılır.Belirli bir türe DataContractAttribute özniteliğini uygulamazsanız, DataMemberAttribute özniteliğinin uygulandığı bu türdeki herhangi bir üye seri hale getirici tarafından yoksayılır.
KnownTypes özelliği özniteliğiyle DataContractAttribute işaretlenmemiş türlerde desteklenir. Bu, işaretsiz türlerde KnownTypeAttribute özniteliği için destek içerir.
Ortak üyelerin, özelliklerin veya alanların serileştirme sürecine dahil edilmemesi için IgnoreDataMemberAttribute özniteliğini ilgili üyeye uygulayın.
Miras
İşaretsiz türler (özniteliği olmayan DataContractAttribute türler) bu özniteliğe sahip olan türlerden devralabilir; ancak tersine izin verilmez: özniteliği olan türler işaretsiz türlerden devralamaz. Bu kural öncelikli olarak .NET Framework'ün önceki sürümlerinde yazılan kodla geriye dönük uyumluluğu sağlamak için uygulanır.