serializador personalizado para apenas uma propriedade no Json.NET
ATUALIZAR Encontrou o problema - estava herdando da classe errada, precisava ser JsonConverter.
Eu tenho uma classe que tem uma propriedade Location do tipo System.Data.Entity.Spatial.DbGeography. O serializador padrão do Json.NET coloca o texto JSON assim:
...
"PlaceType": 0,
"Location": {
"Geography": {
"CoordinateSystemId": 4326,
"WellKnownText": "POINT (-88.00000 44.00000)"
}
},
"AddedDT": null,
...
Eu quero colocar um texto assim:
...
"PlaceType": 0,
"Location": [-88.00000,44.00000],
"AddedDT": null,
...
... então parece-me que o que eu deveria fazer seria substituir o conversor que está sendo usado atualmente no tipo DbGeography.
Os exemplos que vi até agora que usam CustomCreationConverters e ContractResolvers parecem abordar como você substituiria o serializador para a classe principal que está sendo serializada, não para um tipo que é apenas uma propriedade dessa classe. Os exemplos que envolvem a anotação da classe que está sendo sobrescrita não funcionam para mim porque eu não defino DbGeography no meu código e ela é efetivamente uma classe selada porque ela não tem nenhum construtor e só pode ser instanciada porinternal
métodos de fábrica.
Existe uma maneira de aplicar um JsonConverter para um tipo fluentemente? Se sim, como seria o conversor? Eu apenas sobrescrevo o método WriteJson ()?