Próbuję debugować serializację xml. Podczas serializacji XML serializator "wykrył odwołanie cykliczne". Chciałbym go znaleźć i pozbyć się go. Czy jest jakieś wygodne narzędzie/podejście, które mogę wykorzystać?Jak znaleźć cykliczne odwołanie podczas serializacji xml?
5
A
Odpowiedz
2
Zazwyczaj jest to dość oczywiste z ręczną kontrolę ...
Można spróbować SZEREGOWANIE do pliku, a wystarczy spojrzeć na końcu pliku - nie będzie kompletna XML, oczywiście, ale to powinno daj wskazówkę.
Należy pamiętać, że DataContractSerializer
jest w stanie (poprzez włączenie opcji) szeregowania kompletnych wykresów, ale ma mniej opcji XML niż XmlSerializer
- a tryb wykresu jest jeszcze mniej podobny do XML; Preferowane jest usunięcie IMO z cyklu. Zazwyczaj jest to po prostu przypadek coś takiego:
[XmlIgnore]
public Person Parent {get;set;}
(tj serializacji w "dół" tylko odniesienia)
0
$normalizers->setCircularReferenceHandler(function ($object) {
return $object->getId();
});