@@ -12,7 +12,7 @@ namespace Protobuf.System.Text.Json;
1212 private readonly FieldInfo [ ] _fields ;
1313 private readonly Dictionary < string , FieldInfo > _fieldsLookup ;
1414
15- public ProtobufConverter ( JsonNamingPolicy ? namingPolicy , JsonProtobufSerializerOptions options )
15+ public ProtobufConverter ( JsonSerializerOptions jsonSerializerOptions , JsonProtobufSerializerOptions jsonProtobufSerializerOptions )
1616 {
1717 var type = typeof ( T ) ;
1818
@@ -21,7 +21,7 @@ public ProtobufConverter(JsonNamingPolicy? namingPolicy, JsonProtobufSerializerO
2121 var propertyInfo = type . GetProperty ( "Descriptor" , BindingFlags . Public | BindingFlags . Static ) ;
2222 var messageDescriptor = ( MessageDescriptor ) propertyInfo ? . GetValue ( null , null ) ! ;
2323
24- var convertNameFunc = GetConvertNameFunc ( namingPolicy , options . UseProtobufJsonNames ) ;
24+ var convertNameFunc = GetConvertNameFunc ( jsonSerializerOptions . PropertyNamingPolicy , jsonProtobufSerializerOptions . UseProtobufJsonNames ) ;
2525
2626 _fields = messageDescriptor . Fields . InDeclarationOrder ( ) . Select ( fieldDescriptor => new FieldInfo
2727 {
@@ -33,7 +33,8 @@ public ProtobufConverter(JsonNamingPolicy? namingPolicy, JsonProtobufSerializerO
3333 IsOneOf = fieldDescriptor . ContainingOneof != null
3434 } ) . ToArray ( ) ;
3535
36- _fieldsLookup = _fields . ToDictionary ( x => x . JsonName , x => x ) ;
36+ var stringComparer = jsonSerializerOptions . PropertyNameCaseInsensitive ? StringComparer . OrdinalIgnoreCase : StringComparer . Ordinal ;
37+ _fieldsLookup = _fields . ToDictionary ( x => x . JsonName , x => x , stringComparer ) ;
3738 }
3839
3940 private static Func < FieldDescriptor , string > GetConvertNameFunc ( JsonNamingPolicy ? jsonNamingPolicy , bool useProtobufJsonNames )
0 commit comments