The first attribute, [NonSerialized], should be applied to field members and informs the standard serialization methods to ignore the field. The second attribute, [System.Xml.Serialization.XmlIgnore], should be applied to public properties and informs the Xml Serializer to ignore the property. The combination of the two should be enough to stop the field from being serialized regardless of the serializer the client chooses to use.
Quick pseudo example:
[NonSerialized], private SomeUnFriendlyType myType: [System.Xml.Serialization.XmlIgnore] public SomeUnFriendlyType MyType()
Benim takıldığım durumda:
[Serializable] public class KurumBilgileri:MedulaServisleri { public string SaglikTesisKodu; public string SaglikTesisSifresi; public string BransKodu; public string TedaviTuru; public string TedaviTipi; ////// /// public string ProvizyonTipi; private string m_XmlFileName = "SaglikTesisBilgileri.xml"; public KurumBilgileri() { }
Tabi MedulaServislerinide görmek gerek:
[Serializable] public class MedulaServisleri { //[NonSerialized] [XmlIgnore] public HastaKabulIslemleriService hki; public MedulaServisleri() { hki = new HastaKabulIslemleriService(); } }
Eğer ata sınıftaki(MedulaServisleri) hki değişkenini protected yaparsam hata fırlatılmıyordu. Çünkü
[NonSerialized]
özelliğini kullanıyordum. Ama public yaptığımda gümlüyordu. Bu kezde [XmlIgnore]
özelliği imdada yetişiyor. Tamda yukarıda makalesini verdiğim elemanın dediği gibi.