[release/6.0-preview5] Add JSON source-gen mode that emits serialization logic#53337
Merged
mmitche merged 8 commits intorelease/6.0-preview5from May 27, 2021
Merged
Conversation
|
Note regarding the This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change. |
|
Tagging subscribers to this area: @eiriktsarpalis, @layomia |
ericstj
approved these changes
May 27, 2021
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.