Use Type.GetTypeCode() instead of private extension #57540
Merged
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.
Use Type.GetTypeCode instead of private extension.
In the 1.0 days, Type.GetTypeCode() did not exist. So we created our
own extension method and used that. Now that this method exists
in .Net Core again, we should use the framework version instead
of our own. Doing so fixes edge case issues like #53553.
Also, while adding a test that checks for the regression
reported in #53553, I found that the reflection-based serializer
was taking a logically different approach to serialization when
writing out an enum (or array) that has been cast down (to object
in this case.) This PR also brings the reflection-based serializer
in line with how the refemit logic.
Fixes #53553