diff --git a/src/Microsoft.OpenApi/Reader/OpenApiReaderRegistry.cs b/src/Microsoft.OpenApi/Reader/OpenApiReaderRegistry.cs index 6605c12f7..e1eea86a1 100644 --- a/src/Microsoft.OpenApi/Reader/OpenApiReaderRegistry.cs +++ b/src/Microsoft.OpenApi/Reader/OpenApiReaderRegistry.cs @@ -2,6 +2,7 @@ // Licensed under the MIT license. using System; +using System.Collections.Concurrent; using System.Collections.Generic; using Microsoft.OpenApi.Interfaces; @@ -12,7 +13,7 @@ namespace Microsoft.OpenApi.Reader /// public static class OpenApiReaderRegistry { - private static readonly Dictionary _readers = new(StringComparer.OrdinalIgnoreCase); + private static readonly ConcurrentDictionary _readers = new(StringComparer.OrdinalIgnoreCase); /// /// Defines a default OpenAPI reader. @@ -26,7 +27,7 @@ public static class OpenApiReaderRegistry /// The reader instance. public static void RegisterReader(string format, IOpenApiReader reader) { - _readers[format] = reader; + _readers.AddOrUpdate(format, reader, (_, _) => reader); } ///