Sto tentando di eseguire il debug della serializzazione xml. Durante la serializzazione xml, il serializzatore "ha rilevato un riferimento circolare". Mi piacerebbe trovarlo e liberarmene. C'è qualche comodo strumento/approccio che posso usare?Come trovo un riferimento circolare durante la serializzazione xml?
5
A
risposta
2
Di solito è abbastanza evidente con l'ispezione manuale ...
si potrebbe provare serializzazione in un file, e basta guardare alla fine del file - non sarà XML completo, ovviamente, ma dovrebbe dare un indizio
Nota che DataContractSerializer
è in grado (abilitando un'opzione) di serializzare grafici completi, ma ha meno opzioni XML di XmlSerializer
ha - e la modalità grafico è ancora meno simile a XML; È preferibile rimuovere il ciclo da IMO. Di solito questo è solo un caso di qualcosa come:
[XmlIgnore]
public Person Parent {get;set;}
(vale a dire serializzare "verso il basso" riferimenti solo)
0
$normalizers->setCircularReferenceHandler(function ($object) {
return $object->getId();
});