Piszę JsonConverter
, aby wykonać niektóre zadania konwersji, które muszę wykonać podczas odczytu/zapisu. W szczególności zajmuję się istniejącym zachowaniem serializacji i sczepieniem pewnych dodatkowych właściwości podczas zapisu/odczytu tych dodatkowych właściwości podczas odczytu.Wywołanie rekursywnie JsonSerializer w JsonConverter
Wewnątrz JsonConverter
, chciałbym skorzystać z przekazanej instancji JsonSerializer
, aby wykonać większość funkcji konwersji. Jednakże, gdy to zrobię, kończę pętlę rekursywną, w której serializator wywołuje mój konwerter, który dzwoni do serializatora, który wywołuje konwerter itp.
Widziałem ludzi, którzy robili takie rzeczy, jak używanie JsonConvert.SerializeObject
, przekazywanie wszystkich konwerterów z instancji serializera z wyjątkiemthis
. Nie zadziała to jednak dla mnie, ponieważ pomija wszystkie inne dostosowania, które wykonałem w moim serializatorze, takie jak niestandardowy resolver umowy i obsługa DateTime
.
Czy istnieje sposób mogę albo:
- Zastosowanie instancja serializer przeszedł do mnie, ale jakoś wykluczyć mój konwertera lub
- sklonować serializer przeszedł do mnie (bez ręcznego konstruowania nowego i kopiowanie własności według właściwości) i usunięcie mojego konwertera?
To nie odpowiada na pytanie, które zostało zadane. Pytanie nie brzmiało: "Jak serializować mój obiekt za pomocą' JsonConvert'? " Było pytanie, jak uniknąć pętli rekursywnej z wnętrza niestandardowego 'JsonConverter'. Zwróć uwagę, że ['JsonConvert'] (http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonConvert.htm) i [' JsonConverter'] (http://www.newtonsoft.com/json/help/html /T_Newtonsoft_Json_JsonConverter.htm) to dwie zupełnie różne klasy w Json.Net. –