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 ()?

questionAnswers(3)

yourAnswerToTheQuestion