Add support for generic interface-based collections in JsonSerializer (dotnet/corefx...
authorLayomi Akinrinade <layomia@gmail.com>
Sat, 13 Apr 2019 01:44:18 +0000 (21:44 -0400)
committerGitHub <noreply@github.com>
Sat, 13 Apr 2019 01:44:18 +0000 (21:44 -0400)
commit2d8ee2c01fde1412648b91639f219587d1bf0dc3
tree051423fe6eedca089129893fa77eae875cd3e262
parentae8f7a0ee7d5be0f9002cf6b04d52ac8cab2f8b7
Add support for generic interface-based collections in JsonSerializer (dotnet/corefx#36756)

* Add support for generic interface-based collections in JsonSerializer

Specifically, add enumerable converters for:

* IEnumerable<T>
* ICollection<T>
* IList<T>
* IReadOnlyCollection<T>
* IReadOnlyList<T>

This partially addresses https://github.com/dotnet/corefx/issues/36643

* Address review comments

* Add serialization tests for generic interface collection as members of class objects

Commit migrated from https://github.com/dotnet/corefx/commit/cc01ec9a781c4af5afd495c5b80a1f7d9616bed2
13 files changed:
src/libraries/System.Text.Json/src/System.Text.Json.csproj
src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/DefaultEnumerableConverter.cs [new file with mode: 0644]
src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonClassInfo.cs
src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonPropertyInfo.cs
src/libraries/System.Text.Json/tests/Serialization/Array.ReadTests.cs
src/libraries/System.Text.Json/tests/Serialization/Array.WriteTests.cs
src/libraries/System.Text.Json/tests/Serialization/Null.WriteTests.cs
src/libraries/System.Text.Json/tests/Serialization/PolymorphicTests.cs
src/libraries/System.Text.Json/tests/Serialization/TestClasses.Polymorphic.cs
src/libraries/System.Text.Json/tests/Serialization/TestClasses.cs
src/libraries/System.Text.Json/tests/Serialization/TestData.cs
src/libraries/System.Text.Json/tests/Serialization/Value.ReadTests.cs
src/libraries/System.Text.Json/tests/Serialization/Value.WriteTests.cs