-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[release/7.0] Fix Binding with IList<>, ICollection and IDictionary<,> implementer types #78118
Conversation
Tagging subscribers to this area: @dotnet/area-extensions-configuration Issue DetailsBackport of #77582 to release/7.0 /cc @tarekgh Customer ImpactTestingRiskIMPORTANT: Is this backport for a servicing release? If so and this change touches code that ships in a NuGet package, please make certain that you have added any necessary package authoring and gotten it explicitly reviewed.
|
Approved over email |
CI failure is known and unrelated: #77988 OOB package authoring changes look good. Approved by Tactics. Signed off by area owner. Ready to merge. |
Backport of #77857 and #77582 to release/7.0
/cc @tarekgh
Customer Impact
Customers using configurations which bind to the types
IList<T>
andICollection<T>
and try to add items to the produced collection objects will get exception tellingUnhandled exception. System.NotSupportedException: Collection was of a fixed size.
. Also, binding using types implementIDictionary<,>
interface (but not aDictionary<,>
) will not work as expected. It will end up not adding the configuration data to that object. These issues are reported by R9 in the issue #77725 and IDictionary issue reported by other user in the issue #77246Testing
I spent enough time testing these cases manually and ensuring we are not missing any related cases. Also, I have added more tests to validate such fix and to ensure will not run into similar regressions in the future.
Risk
Medium, although there is some risk when touching the configuration code, but I spent enough time testing the change to mitigate the risk. The change is good enough to proceed with.