2011-03-12 12 views
5

मैं एक्सएमएल क्रमबद्धता डीबग करने की कोशिश कर रहा हूं। एक्सएमएल क्रमबद्धता के दौरान, धारावाहिक "एक परिपत्र संदर्भ का पता चला"। मैं इसे ढूंढना चाहता हूं और इससे छुटकारा पा सकता हूं। क्या कोई सुविधाजनक टूल/दृष्टिकोण है जिसका मैं उपयोग कर सकता हूं?एक्सएमएल क्रमबद्धता के दौरान मुझे परिपत्र संदर्भ कैसे प्राप्त करें?

उत्तर

2

आमतौर पर यह मैनुअल निरीक्षण के साथ बहुत स्पष्ट है ...

आपने किसी फ़ाइल का serialising कोशिश कर सकते हैं, और सिर्फ फ़ाइल के अंत में देखें - वह पूर्ण, XML, स्पष्ट रूप से नहीं होगा, लेकिन यह होना चाहिए एक सुराग दें

ध्यान दें कि DataContractSerializer पूर्ण ग्राफ को क्रमबद्ध करने में सक्षम (विकल्प सक्षम करके) सक्षम है, लेकिन इसमें XmlSerializer की तुलना में कम XML विकल्प हैं - और ग्राफ मोड भी कम XML जैसा है; आईएमओ चक्र को हटाने बेहतर है।

[XmlIgnore] 
public Person Parent {get;set;} 

(अर्थात serialize "नीचे की ओर" केवल संदर्भ)

0
$normalizers->setCircularReferenceHandler(function ($object) { 
    return $object->getId(); 
}); 
: आमतौर पर यह सिर्फ तरह कुछ का एक मामला है
संबंधित मुद्दे