[release/9.0-staging] Fix regression in constructor parameter binding logic. by github-actions[bot] · Pull Request #109813 · dotnet/runtime (original) (raw)

Backport of #109786 to release/9.0-staging

/cc @eiriktsarpalis

Customer Impact

This was reported by a customer in #109768, reporting incorrect behavior when trying to deserialize JSON where there are two properties that differ in casing (e.g. [JsonPropertyName("a")] and [JsonPropertyName("A")]).

Regression

A refactoring introduced in 455f540 regressed the way in which conflicting parameters are being resolved. This reinstates the original logic.

Testing

Added unit testing covering the regressed case.

Risk

Low. Targeted change reinstating logic that got accidentally removed in .NET 9.