serializador personalizado para una sola propiedad en Json.NET

ACTUALIZAR Encontré el problema: era heredar de una clase incorrecta, necesitaba ser JsonConverter.

Tengo una clase que tiene una propiedad de ubicación de tipo System.Data.Entity.Spatial.DbGeography. El serializador por defecto de Json.NET pone el texto JSON como este:

  ...
  "PlaceType": 0,
  "Location": {
    "Geography": {
      "CoordinateSystemId": 4326,
      "WellKnownText": "POINT (-88.00000 44.00000)"
    }
  },
  "AddedDT": null,
  ...

Quiero que salga un texto como este:

  ...
  "PlaceType": 0,
  "Location": [-88.00000,44.00000],
  "AddedDT": null,
  ...

... así que me parece que lo que debería hacer sería anular cualquier convertidor que se esté utilizando actualmente en el tipo DbGeography.

Los ejemplos que he visto hasta ahora que usan CustomCreationConverters y ContractResolvers parecen abordar cómo reemplazaría el serializador para la clase principal que se está serializando, no para un tipo que es solo una propiedad de esa clase. Los ejemplos que involucran anotar la clase que está siendo anulada no me funcionan porque no defino DbGeography en mi código y es efectivamente una clase sellada porque no tiene constructor y solo puede ser instanciada porinternal métodos de fábrica.

¿Hay una manera de aplicar un JsonConverter a un tipo con fluidez? Si es así, ¿cómo sería el convertidor? ¿Acabo de anular el método WriteJson ()?

Respuestas a la pregunta(3)

Su respuesta a la pregunta