Используйте генератор исходного кода System.Text.Json с пользовательским JsonConverterC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Используйте генератор исходного кода System.Text.Json с пользовательским JsonConverter

Сообщение Anonymous »

Как пользовательские классы JsonConverter используются вместе с генератором исходного кода System.Text.Json?
Я хотел бы вызвать JsonSerializer.Deserialize(), который не возвращается к реализации на основе отражения и использует собственный MyTypeJsonParser : JsonConverter.
EDIT, чтобы уточнить: Обычай конвертер реализован для MyType, но json содержит массив объектов MyType. Итак, я хотел бы создать сгенерированный исходным кодом JsonSerializerContext, который десериализует массив объектов MyType (

Код: Выделить всё

MyType[]
), используя сгенерированный код для десериализации части массива и конвертер вручную для десериализации части объектов MyType.
Старый код (который не использует генератор исходного кода) применяет собственный преобразователь, добавляя его в JsonSerializerOptions.Converters.
Однако в ходе дальнейшего исследования я обнаружил, что преобразователи Свойство отсутствует в JsonSourceGenerationOptionsAttribute. В таблицах документации также указано, что JsonConverterAttribute и JsonSerializerOptions.Converters не поддерживаются в режиме оптимизации сериализации. Итак, похоже, что смешивание пользовательских конвертеров с генератором исходного кода json в настоящее время (.NET 6) невозможно.
В документации неясно, есть ли хотя бы сбор метаданных режим генерации исходного кода может использовать JsonConverterAttribute.

Подробнее здесь: https://stackoverflow.com/questions/703 ... nconverter
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»