[release/6.0-preview5] Add JSON source-gen mode that emits serialization logic #53337
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport of #53212 to release/6.0-preview5. Contributes to #51945.
/cc @layomia
Customer Impact
This PR adds a new mode to the JSON source generator that emits serialization logic and can improve throughput performance. It is important to have folks try it and give us feedback.
We discussed with ASP.NET - they are supportive of this and don't need to react to the change.
Testing
Tests have been added for new scenarios and there are no regressions to existing tests.
Risk
The risk is minimal. Projects using System.Text.Json without JSON source gen should be unaffected since the vast majority of changes are within the source generator. Projects that use source gen should also have no regressions to existing functionality, and it will be easy to configure the new mode.