Sto scrivendo un JsonConverter
per eseguire alcune attività di conversione che ho bisogno di eseguire su lettura/scrittura. In particolare, sto prendendo il comportamento di serializzazione esistente e virando su alcune proprietà aggiuntive per scrivere/leggere quelle proprietà aggiuntive in lettura.Chiamare in modo ricorsivo JsonSerializer in un JsonConverter
All'interno dello JsonConverter
, mi piacerebbe utilizzare l'istanza passata JsonSerializer
per eseguire la maggior parte delle funzionalità di conversione. Tuttavia, quando faccio questo, finisco in un ciclo ricorsivo in cui il serializzatore chiama nel mio convertitore che chiama nel serializzatore che chiama nel convertitore ed ecc.
Ho visto persone fare cose come l'uso JsonConvert.SerializeObject
, passando tutti i convertitori dall'istanza serializzatore eccettothis
. Tuttavia, questo non funzionerà per me perché ignora tutte le altre personalizzazioni che ho fatto sul mio serializzatore, come il resolver del contratto personalizzato e la gestione dello DateTime
.
C'è un modo che può:
- Utilizzare l'istanza serializzatore passato a me, ma in qualche modo esclude mio convertitore, o
- Clone il serializzatore passato a me (senza costruire manualmente una nuova e copiandolo proprietà per proprietà) e rimuovi il mio convertitore?
Questo non risponde alla domanda che è stata posta. La domanda non era "Come serializzo il mio oggetto usando' JsonConvert'? " Stava chiedendo come evitare un ciclo ricorsivo all'interno di un 'JsonConverter 'personalizzato. Si noti che ['JsonConvert'] (http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonConvert.htm) e [' JsonConverter'] (http://www.newtonsoft.com/json/help/html /T_Newtonsoft_Json_JsonConverter.htm) sono due classi completamente diverse in Json.Net. –