diff --git a/src/libraries/System.Text.Json/ref/System.Text.Json.cs b/src/libraries/System.Text.Json/ref/System.Text.Json.cs
index f22feb4a517a7..1e57f75ff9791 100644
--- a/src/libraries/System.Text.Json/ref/System.Text.Json.cs
+++ b/src/libraries/System.Text.Json/ref/System.Text.Json.cs
@@ -847,12 +847,12 @@ public enum JsonSourceGenerationMode
Metadata = 1,
Serialization = 2,
}
- public sealed partial class JsonStringEnumConverter : System.Text.Json.Serialization.JsonConverterFactory
+ public partial class JsonStringEnumConverter : System.Text.Json.Serialization.JsonConverterFactory
{
public JsonStringEnumConverter() { }
public JsonStringEnumConverter(System.Text.Json.JsonNamingPolicy? namingPolicy = null, bool allowIntegerValues = true) { }
- public override bool CanConvert(System.Type typeToConvert) { throw null; }
- public override System.Text.Json.Serialization.JsonConverter CreateConverter(System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) { throw null; }
+ public sealed override bool CanConvert(System.Type typeToConvert) { throw null; }
+ public sealed override System.Text.Json.Serialization.JsonConverter CreateConverter(System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) { throw null; }
}
public enum JsonUnknownTypeHandling
{
diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonStringEnumConverter.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonStringEnumConverter.cs
index ac6fe18b9dbda..7d8d161acd0a3 100644
--- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonStringEnumConverter.cs
+++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonStringEnumConverter.cs
@@ -11,7 +11,7 @@ namespace System.Text.Json.Serialization
///
/// Reading is case insensitive, writing can be customized via a .
///
- public sealed class JsonStringEnumConverter : JsonConverterFactory
+ public class JsonStringEnumConverter : JsonConverterFactory
{
private readonly JsonNamingPolicy? _namingPolicy;
private readonly EnumConverterOptions _converterOptions;
@@ -45,13 +45,13 @@ public JsonStringEnumConverter(JsonNamingPolicy? namingPolicy = null, bool allow
}
///
- public override bool CanConvert(Type typeToConvert)
+ public sealed override bool CanConvert(Type typeToConvert)
{
return typeToConvert.IsEnum;
}
///
- public override JsonConverter CreateConverter(Type typeToConvert, JsonSerializerOptions options) =>
+ public sealed override JsonConverter CreateConverter(Type typeToConvert, JsonSerializerOptions options) =>
EnumConverterFactory.Create(typeToConvert, _converterOptions, _namingPolicy, options);
}
}
diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/EnumConverterTests.cs b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/EnumConverterTests.cs
index 2365a92017038..46cf684ce28ed 100644
--- a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/EnumConverterTests.cs
+++ b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/EnumConverterTests.cs
@@ -135,17 +135,15 @@ public class Week
[JsonConverter(typeof(JsonStringEnumConverter))]
public DayOfWeek WorkStart { get; set; }
public DayOfWeek WorkEnd { get; set; }
- [LowerCaseEnum]
+ [JsonConverter(typeof(LowerCaseEnumConverter))]
public DayOfWeek WeekEnd { get; set; }
}
- [AttributeUsage(AttributeTargets.Property | AttributeTargets.Class, AllowMultiple = false)]
- private class LowerCaseEnumAttribute : JsonConverterAttribute
+ private class LowerCaseEnumConverter : JsonStringEnumConverter
{
- public LowerCaseEnumAttribute() { }
-
- public override JsonConverter CreateConverter(Type typeToConvert)
- => new JsonStringEnumConverter(new ToLowerNamingPolicy());
+ public LowerCaseEnumConverter() : base(new ToLowerNamingPolicy())
+ {
+ }
}
[Fact]