@@ -68,6 +68,7 @@ public static ReadResult Load(MemoryStream stream,
68
68
public static T Load < T > ( MemoryStream input , OpenApiSpecVersion version , string format , OpenApiDocument openApiDocument , out OpenApiDiagnostic diagnostic , OpenApiReaderSettings settings = null ) where T : IOpenApiElement
69
69
{
70
70
format ??= InspectStreamFormat ( input ) ;
71
+ settings ??= DefaultReaderSettings . Value ;
71
72
return settings . Readers [ format ] . ReadFragment < T > ( input , version , openApiDocument , out diagnostic , settings ) ;
72
73
}
73
74
@@ -234,14 +235,15 @@ public static T Parse<T>(string input,
234
235
return Load < T > ( stream , version , format , openApiDocument , out diagnostic , settings ) ;
235
236
}
236
237
237
- private static readonly OpenApiReaderSettings DefaultReaderSettings = new ( ) ;
238
+ private static readonly Lazy < OpenApiReaderSettings > DefaultReaderSettings = new ( ( ) => new OpenApiReaderSettings ( ) ) ;
238
239
239
240
private static async Task < ReadResult > InternalLoadAsync ( Stream input , string format , OpenApiReaderSettings settings , CancellationToken cancellationToken = default )
240
241
{
242
+ settings ??= DefaultReaderSettings . Value ;
241
243
var reader = settings . Readers [ format ] ;
242
244
var readResult = await reader . ReadAsync ( input , settings , cancellationToken ) . ConfigureAwait ( false ) ;
243
245
244
- if ( settings ? . LoadExternalRefs ?? DefaultReaderSettings . LoadExternalRefs )
246
+ if ( settings . LoadExternalRefs )
245
247
{
246
248
var diagnosticExternalRefs = await LoadExternalRefsAsync ( readResult . Document , settings , format , cancellationToken ) . ConfigureAwait ( false ) ;
247
249
// Merge diagnostics of external reference
@@ -269,7 +271,8 @@ private static async Task<OpenApiDiagnostic> LoadExternalRefsAsync(OpenApiDocume
269
271
270
272
private static ReadResult InternalLoad ( MemoryStream input , string format , OpenApiReaderSettings settings )
271
273
{
272
- if ( settings ? . LoadExternalRefs ?? DefaultReaderSettings . LoadExternalRefs )
274
+ settings ??= DefaultReaderSettings . Value ;
275
+ if ( settings . LoadExternalRefs )
273
276
{
274
277
throw new InvalidOperationException ( "Loading external references are not supported when using synchronous methods." ) ;
275
278
}
0 commit comments