настраиваемый сериализатор только для одного свойства в Json.NET

ОБНОВИТЬ Нашел проблему - наследовал от неправильного класса, должен был быть JsonConverter.

У меня есть класс, который имеет свойство Location типа System.Data.Entity.Spatial.DbGeography. Сериализатор Json.NET по умолчанию выводит текст JSON следующим образом:

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

Я хочу, чтобы это выглядело так:

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

... так что мне кажется, что я должен сделать, это переопределить любой конвертер, используемый в настоящее время для типа DbGeography.

Примеры, которые я до сих пор видел, которые используют CustomCreationConverters и ContractResolvers, похоже, касаются того, как заменить сериализатор для сериализуемого основного класса, а не для типа, являющегося только свойством этого класса. Примеры, которые включают аннотирование класса, который переопределяется, не работают для меня, потому что я не определяю DbGeography в своем коде, и это по сути закрытый класс, потому что он не имеет конструктора и может быть создан толькоinternal заводские методы.

Есть ли способ применить JsonConverter к типу свободно? Если так, то как бы выглядел конвертер? Должен ли я просто переопределить метод WriteJson ()?

Ответы на вопрос(3)

Ваш ответ на вопрос