-
-
Notifications
You must be signed in to change notification settings - Fork 6.6k
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
Use CompareNetObject for object comparison in C# client (refactor) #1765
Conversation
Thanks for the change. Is there any way we could put this deep compare behind a flag or use it in a different methods names besides Equals? This is a really costly change that would have a significant performance impact. Also, in .NET the Equals method is intended to work differently depending on whether you have a reference or value type. This change considers all objects to be value types, so changing from reference equality to value equality could be surprising to consumers. See the remarks section here for details: https://docs.microsoft.com/en-us/dotnet/api/system.object.equals?view=netframework-4.7.2 |
@jimschubert thanks for the review and feedback. I'll add an option to let users choose which one to use. |
UPDATE: Added a new option "useCompareNetObjects" with warning on performance impact. |
* master: (26 commits) Delete unused method (OpenAPITools#1744) Use JsonNullable wrapper on nullable/x-nullable fields (OpenAPITools#1762) Add an option to use reflection in equals, hashCode (Java client) (OpenAPITools#1767) [Slim] Encode path to support non-latin characters (OpenAPITools#1687) [elm] Add support for sending headers (OpenAPITools#1704) Add test case for InlineModelResolver: inline array response (OpenAPITools#1778) fix group parameter logic (OpenAPITools#1779) Add test case for InlineModelResolver: inline array request body (OpenAPITools#1777) Add test case for InlineModelResolver: inline array schema (OpenAPITools#1772) Fix type inference error (OpenAPITools#1773) skip default value for contaier in spring (OpenAPITools#1725) [Slim] Add PHP CodeSniffer config template (OpenAPITools#1764) Use CompareNetObject for object comparison in C# client (refactor) (OpenAPITools#1765) Add test case for InlineModelResolver (OpenAPITools#1771) Add online gen tests (OpenAPITools#1759) Resolve inline models before preprocess (OpenAPITools#1761) better handling of allOf (composition) (OpenAPITools#1757) Fix UUID support (OpenAPITools#1746) Use appInfo.version for podspec (OpenAPITools#1760) [Swift 4] Add `createURLRequest` method (OpenAPITools#1727) ...
…penAPITools#1765) * add pet, array of array test, use CompareNetObject for comparision * add an option, should trigger ci failure * update doc * use useCompareNetObjects in csharp-refactor petstore * fix project template
PR checklist
./bin/
to update Petstore sample so that CIs can verify the change. (For instance, only need to run./bin/{LANG}-petstore.sh
and./bin/security/{LANG}-petstore.sh
if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in.\bin\windows\
.master
,. Default:3.4.x
,4.0.x
master
.Description of the PR
cc @mandrean (2017/08) @jimschubert (2017/09)