- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 8.6k
 
[dotnet] Parse response before deserialization #15268
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
          PR Reviewer Guide 🔍Here are some key observations to aid the review process: 
  | 
    
          PR Code Suggestions ✨Explore these optional code suggestions: 
  | 
    
| 
           @nvborisenko Now that   | 
    
| 
           Is it binary breaking change?  | 
    
| 
           No breaks in this PR, this is all internal changes. We still return a Value deserializes to .NET types, like before.  | 
    
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
* [dotnet] Parse response before deserialization * Handle if `value.sessionId` is `null` * null check instead
User description
Thanks for contributing to Selenium!
A PR well described will help maintainers to quickly review and merge it
Before submitting your PR, please check our contributing guidelines.
Avoid large PRs, help reviewers by making them as simple and short as possible.
This will parse the WebDriver response into its constituent parts before deserializing into an
objectMotivation and Context
This simplifies the handling, and prepares us to potentially expose the response as a
JsonNode/JsonElementin the futureTypes of changes
Checklist
PR Type
Enhancement
Description
Refactored
Responseclass to useJsonNodefor parsing.Simplified JSON deserialization logic for better maintainability.
Improved error handling for JSON parsing in
FromJsonandFromErrorJson.Updated
ResponseJsonSerializerContextto include new serialization options.Changes walkthrough 📝
Response.cs
Refactor JSON parsing and deserialization in Response classdotnet/src/webdriver/Response.cs
DictionarywithJsonNodefor JSON parsing.FromJsonandFromErrorJsonmethods for better error handling.JsonSourceGenerationOptionstoResponseJsonSerializerContext.JsonSerializer.Deserialize.