Какие типы указать для генератора исходного текста Text.Json?C#

Место общения программистов C#
Ответить
Anonymous
 Какие типы указать для генератора исходного текста Text.Json?

Сообщение Anonymous »

Я использую генератор исходного кода System.Text.Json, но не смог найти информацию о том, какие типы мне нужно указать для JsonSerializerContext.
Если у меня есть эти dto:s< /p>

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

public class OrderDto {
...
public List Lines { get; set; }
}

public class OrderLineDto {
...
}
используется в различных местах, например

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

JsonSerializer.DeserializeAsync(...);
JsonSerializer.DeserializeAsync(...);
JsonSerializer.DeserializeAsync(...);
JsonSerializer.DeserializeAsync(...);
Достаточно ли просто иметь атрибут [JsonSerializable(typeof(OrderDto))] или мне нужно иметь один атрибут для каждого «корня», используемого в DeserializeAsync?< /p>
Изменить: Извините, я пропустил часть о сборе в документации

Чтобы указать источник поколение для коллекции, используйте [JsonSerializable] с типом коллекции.

Но в документации просто сказано

Типы членов WeatherForecast не нужно явно указывать с помощью атрибутов [JsonSerializable].

Означает ли это, что DeserializeAsync работает без [JsonSerializable(typeof(List))], потому что тип уже существует как член OrderDto?
Немного предыстории.
У меня есть библиотека с автоматически генерируемыми типами, используемая в API. Полный список всех используемых типов дает ~250 атрибутов, которые расширяются до ~1650 «файлов, сгенерированных исходным кодом», которые иногда работают медленно (и утрояют размер библиотеки). Поскольку почти все типы перечислены дважды (т. е. Dto и List), а многие из них также являются членами других типов, я задался вопросом, смогу ли я его оптимизировать.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -generator
Ответить

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

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

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

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

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