niestandardowy serializator dla tylko jednej właściwości w Json.NET

AKTUALIZACJA Znaleziono problem - odziedziczył po niewłaściwej klasie, musiał być JsonConverter.

Mam klasę, która ma właściwość Location typu System.Data.Entity.Spatial.DbGeography. Domyślny serializator Json.NET wyświetla następujący tekst JSON:

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

Chcę, żeby tekst był następujący:

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

... więc wydaje mi się, że powinienem zastąpić dowolny konwerter, który jest aktualnie używany w typie DbGeography.

Przykłady, które do tej pory widziałem, używające CustomCreationConverters i ContractResolvers, wydają się dotyczyć sposobu zastąpienia serializatora dla klasy głównej, która jest serializowana, a nie dla typu, który jest tylko właściwością tej klasy. Przykłady, które wymagają adnotacji klasy, która jest nadpisywana, nie działają dla mnie, ponieważ nie definiuję DbGeography w moim kodzie i jest to klasa zapieczętowana, ponieważ nie ma konstruktora i może być tworzona tylko przezinternal metody fabryczne.

Czy istnieje sposób na płynne zastosowanie JsonConvertera? Jeśli tak, jak wyglądałby konwerter? Czy po prostu zastępuję metodę WriteJson ()?

questionAnswers(3)

yourAnswerToTheQuestion