Разница между режимами сериализации Reflection и SourceGeneration заключается в подходе к сбору метаданных для сериализации. 23
Reflection. 2 По умолчанию JsonSerializer собирает метаданные во время выполнения с помощью отражения. 2 При первой сериализации или десериализации типа он собирает и кэширует эти метаданные. 2 Процесс сбора метаданных занимает время и использует память. 2
SourceGeneration. 23 Этот режим позволяет перенести процесс сбора метаданных с времени выполнения на время компиляции. 3 Во время компиляции собираются метаданные и генерируются файлы исходного кода, которые автоматически компилируются как неотъемлемая часть приложения. 3 Эта техника исключает сбор метаданных во время выполнения, что улучшает производительность сериализации и десериализации. 3
Таким образом, Reflection подходит для большинства потребностей, но в случаях, когда важна оптимизация, лучше использовать SourceGeneration. 1