2011-02-15 27 views
12

Böylece, varlık sınıfım (C# ile yazılmıştır), her alt nesnenin Ana Baba'ya başvurduğu bir Ana özelliğe sahip olması gereken bir alt çocuk modelini izler.Döngüsel referanslarla seri hale getirme yapılabilir mi?

Bu Üst özellik, nesne başvuruları nedeniyle Nesnenin serileştirilmesiyle ilgili sorunlara neden olur.

Ben ebeveyne başvurusunu kaldıramaz, ne

bu konuda herhangi bir fikir (I XML serisini zaman geri okumak gerekir beri) ben XmlIgnore işaretleyebilirsiniz?

cevap

11

XML seri dairesel başvurular desteklemez, sen XmlIgnore özelliğini kullanarak serileştirme gelen üst özelliği hariç tutmanız gerekir. Seri hale getirdiğinizde ilişkiyi sürdürmenin bir yolu için this blog post'a bakın.

Alternatif olarak, DataContractSerializer yerine XmlSerializer kullanabilirsiniz. Dairesel referansları destekler, ancak XML şeması üzerinde çok fazla kontrol sağlamaz ...

+0

güzel blog yazısı. örneğini deniyorum. –

+0

Teşekkürler Thomos, çözümünüz hayat kurtarıcıydı! –

11

Sen XMLSerializer Kendi oluşturmak veya başvuruları hatırlamak seri hale anlatmak için DataContractSerializer ve [DataContract(IsReference= true)] niteliğini kullanabilir.

+1

Yanıt için teşekkürler, bir kod parçası ile herhangi bir örnek daha fazla yardım ekleyecektir. :) –

İlgili konular