[release/10.0] Fix binding IEnumerable<T> with empty array configuration #121325
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.
Backport of #121249 to release/10.0
/cc @tarekgh
Customer Impact
Applications that use an empty array configuration such as
"IEnumerableProperty": []and bind it to an uninitialized property of typeIEnumerable<T>,IReadOnlyList<T>, orIReadOnlyCollection<T>will encounter anArgumentNullException. This exception can cause the application to crash if it isn’t properly handled. The issue is reported by the issue #121249Regression
The regression was introduced in .NET 10 Preview 7 through PR #116677.
Testing
Tested all potential failure cases manually and ensured no exceptions are thrown. Also added a regression test for the previously failing scenario.
Risk
Low, as the fix was scoped to only affect the specific failing scenario, when an empty list configuration is bound to a property of the specified type.