Skip to content

Commit b0ee450

Browse files
[dotnet] Optimize reflection in JsonEnumMemberConverter (#15205)
1 parent 3de1d94 commit b0ee450

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

dotnet/src/webdriver/DevTools/Json/JsonEnumMemberConverter.cs

+8-4
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,23 @@
2626

2727
namespace OpenQA.Selenium.DevTools.Json
2828
{
29-
internal class JsonEnumMemberConverter<TEnum> : JsonConverter<TEnum> where TEnum : Enum
29+
internal sealed class JsonEnumMemberConverter<TEnum> : JsonConverter<TEnum>
30+
where TEnum : struct, Enum
3031
{
3132
private readonly Dictionary<TEnum, string> _enumToString = new Dictionary<TEnum, string>();
3233
private readonly Dictionary<string, TEnum> _stringToEnum = new Dictionary<string, TEnum>();
3334

3435
public JsonEnumMemberConverter()
3536
{
3637
var type = typeof(TEnum);
37-
var values = Enum.GetValues(type);
38-
38+
#if NET8_0_OR_GREATER
39+
TEnum[] values = Enum.GetValues<TEnum>();
40+
#else
41+
Array values = Enum.GetValues(type);
42+
#endif
3943
foreach (var value in values)
4044
{
41-
var enumMember = type.GetMember(value.ToString())[0];
45+
var enumMember = type.GetField(value.ToString());
4246
var attr = enumMember.GetCustomAttributes(typeof(EnumMemberAttribute), false)
4347
.Cast<EnumMemberAttribute>()
4448
.FirstOrDefault();

0 commit comments

Comments
 (0)