@@ -68,6 +68,7 @@ public static ReadResult Load(MemoryStream stream,
6868 public static T Load < T > ( MemoryStream input , OpenApiSpecVersion version , string format , OpenApiDocument openApiDocument , out OpenApiDiagnostic diagnostic , OpenApiReaderSettings settings = null ) where T : IOpenApiElement
6969 {
7070 format ??= InspectStreamFormat ( input ) ;
71+ settings ??= DefaultReaderSettings . Value ;
7172 return settings . Readers [ format ] . ReadFragment < T > ( input , version , openApiDocument , out diagnostic , settings ) ;
7273 }
7374
@@ -234,14 +235,15 @@ public static T Parse<T>(string input,
234235 return Load < T > ( stream , version , format , openApiDocument , out diagnostic , settings ) ;
235236 }
236237
237- private static readonly OpenApiReaderSettings DefaultReaderSettings = new ( ) ;
238+ private static readonly Lazy < OpenApiReaderSettings > DefaultReaderSettings = new ( ( ) => new OpenApiReaderSettings ( ) ) ;
238239
239240 private static async Task < ReadResult > InternalLoadAsync ( Stream input , string format , OpenApiReaderSettings settings , CancellationToken cancellationToken = default )
240241 {
242+ settings ??= DefaultReaderSettings . Value ;
241243 var reader = settings . Readers [ format ] ;
242244 var readResult = await reader . ReadAsync ( input , settings , cancellationToken ) . ConfigureAwait ( false ) ;
243245
244- if ( settings ? . LoadExternalRefs ?? DefaultReaderSettings . LoadExternalRefs )
246+ if ( settings . LoadExternalRefs )
245247 {
246248 var diagnosticExternalRefs = await LoadExternalRefsAsync ( readResult . Document , settings , format , cancellationToken ) . ConfigureAwait ( false ) ;
247249 // Merge diagnostics of external reference
@@ -269,7 +271,8 @@ private static async Task<OpenApiDiagnostic> LoadExternalRefsAsync(OpenApiDocume
269271
270272 private static ReadResult InternalLoad ( MemoryStream input , string format , OpenApiReaderSettings settings )
271273 {
272- if ( settings ? . LoadExternalRefs ?? DefaultReaderSettings . LoadExternalRefs )
274+ settings ??= DefaultReaderSettings . Value ;
275+ if ( settings . LoadExternalRefs )
273276 {
274277 throw new InvalidOperationException ( "Loading external references are not supported when using synchronous methods." ) ;
275278 }
0 commit comments