У меня есть сложный граф объектов, который я сериализую/десериализую с помощью Json.NET. Некоторые из объектов происходят из абстрактного класса, поэтому для того, чтобы десериализация работала правильно, мне нужно было создать пользовательский JsonConverter
. Его единственная роль - выбрать подходящую конкретную реализацию абстрактного класса во время десериализации и позволить Json.NET продолжать свой путь.
Моя проблема возникает, когда я хочу сериализовать. Мне вообще не нужно ничего настраивать. Я хочу получить то же поведение, что и при использовании JsonConvert.SerializeObject
без пользовательского JsonConverter
.
Однако, поскольку я использую пользовательский класс JsonConverter для своих задач десериализации, я вынужден предоставить реализацию WriteJson
. Поскольку WriteJson является абстрактным, я не могу просто вызвать base.WriteJson
, но я хочу сделать это по существу. Итак, мой вопрос: что я поставил в этом методе, чтобы получить обычное поведение Джейн по умолчанию? Другими словами:
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
// What goes here to get default processing?
}