UPDATE Trovato il problema - è stato ereditato dalla classe sbagliata, doveva essere JsonConverter.serializzatore personalizzato per un solo immobile in Json.NET
Ho una classe che ha una proprietà Location di tipo System.Data.Entity.Spatial.DbGeography. Il serializzatore Json.NET di default mette fuori testo JSON come questo:
...
"PlaceType": 0,
"Location": {
"Geography": {
"CoordinateSystemId": 4326,
"WellKnownText": "POINT (-88.00000 44.00000)"
}
},
"AddedDT": null,
...
voglio che mettere fuori testo come questo:
...
"PlaceType": 0,
"Location": [-88.00000,44.00000],
"AddedDT": null,
...
... così sembra a me che cosa devo fare sarebbe essere di sostituire qualsiasi convertitore attualmente utilizzato nel tipo DbGeography.
Gli esempi che ho visto finora che utilizzano CustomCreationConverters e ContractResolvers sembrano indicare come si sostituisce il serializzatore per la classe principale serializzata, non per un tipo che è solo una proprietà di quella classe. Gli esempi che comportano l'annotazione della classe che viene sovrascritta non funzionano per me perché non definisco DbGeography nel mio codice ed è effettivamente una classe chiusa perché non ha costruttore e può essere istanziata solo con i metodi di fabbrica internal
.
C'è un modo per applicare un JsonConverter a un tipo correntemente? Se sì, come sarebbe il convertitore? Devo solo sovrascrivere il metodo WriteJson()?
OK, devo aspettare due giorni per contrassegnare la mia domanda come risposta? Quindi un gruppo di persone dovrà guardarlo come se stessimo ancora aspettando una risposta? Tentato di cancellare il tutto. –
È meglio lasciarlo fuori - gli altri potrebbero trarre beneficio da ciò che hai appreso. Hai fatto la cosa giusta, aggiornando la domanda per dire che è stata risolta nel frattempo. –