Add logic to properly honor naming policy when serializing flag enums (#36726)
authorLayomi Akinrinade <laakinri@microsoft.com>
Wed, 3 Jun 2020 17:36:55 +0000 (13:36 -0400)
committerGitHub <noreply@github.com>
Wed, 3 Jun 2020 17:36:55 +0000 (10:36 -0700)
commitf511ec456f18f5ffa10aca88b29f4d8d644ba1b5
tree22068bec4a5864c86afd06e0131aaca6f81c97d9
parent5bdb598ab4665b32463514ba283cae688de130b6
Add logic to properly honor naming policy when serializing flag enums (#36726)

* Add logic to properly honor naming policy when serializing flag enums

* Cache JsonEncodedText, add optimization to-do, and use .Contains

* Fix CI failure

* Apply feedback, use enum value as lookup key, cache result even when naming policy is not used

* Use ulong as name cache key and perform caching at warm up

* Address feedback - set cap for name cache, compute cache key properly, and add more tests
src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/EnumConverter.cs
src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/EnumConverterFactory.cs
src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonStringEnumConverter.cs
src/libraries/System.Text.Json/tests/Serialization/EnumConverterTests.cs