Как расширить сериализацию JSON (JsonConverter) с помощью TypeNameHandling.Auto, БЕЗ добавления $ type вручную? - PullRequest
0 голосов
/ 21 ноября 2018

Мне нужно расширить сериализацию по умолчанию для любого объекта (который реализует определенный интерфейс) с, скажем, для простоты, дополнительными свойствами в сгенерированном JSON (и затем иметь возможность загружать это правильно).

Моя проблема в том, что у меня TypeNameHandling установлено значение Auto , и если я создаю свой собственный JsonConverter (Newtonsoft.Json) и даже вызываю исходную сериализацию (сисходный поставляемый сериализатор путем отключения моего на то время, чтобы избежать цикла) Я не получаю автоматически генерируемое свойство "$ type" (которое требуется для правильной десериализации).Он не был автоматически добавлен моим родителем, и я не могу заставить сериализатор сделать это (причина ниже).

Я также не могу сам сгенерировать его, потому что У меня нет доступа к моемуcontext, то есть тип свойства, содержащего экземпляр объекта, который я сериализирую , в котором указывается тип ожидаемый (для сравнения с фактическим, чтобы решить, должен ли тип $ бытьгенерируется или нет).Я могу только сгенерировать его всегда .Есть ли способ решить эту проблему?

Я хочу избежать замены сериализации по умолчанию (только для ее расширения) и сохранить поведение Auto TypeNameHandling.

...