fix: Restore runtime compatibility with System.Text.Json 6.0 #2904
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.
A few clients started reporting a MethodNotFound since v20.1.2, related to ValueIsEscaped property. Turned out these clients were using System.Text.Json 6.0 at runtime, due to an older dependency.
The MethodNotFound is thrown when Read is invoked (as it has to resolve all method references in its body before executing), so it wasn't caught by the try/catch in Read itself.
Moving the ValueIsEscaped call to another method, causes the MethodNotFound to be thrown only when that method is invoked, and is now caught by the try/catch. IMO this fixes compatibility with older versions of the dll without disrupting the codebase.