Skip to content

Commit e882501

Browse files
committed
Validate scopes in OpenApiDocumentProvider tests and fix scope
1 parent 886f6ae commit e882501

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

src/OpenApi/src/Services/OpenApiDocumentProvider.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ internal sealed class OpenApiDocumentProvider(IServiceProvider serviceProvider)
2525
/// <param name="writer">A text writer associated with the document to write to.</param>
2626
public async Task GenerateAsync(string documentName, TextWriter writer)
2727
{
28-
var optionsSnapshot = serviceProvider.GetRequiredService<IOptionsSnapshot<OpenApiOptions>>();
28+
// Resolving IOptionsSnapshot requires a scoped service provider.
29+
using var scopedService = serviceProvider.CreateScope();
30+
var optionsSnapshot = scopedService.ServiceProvider.GetRequiredService<IOptionsSnapshot<OpenApiOptions>>();
2931
var namedOption = optionsSnapshot.Get(documentName);
3032
var resolvedOpenApiVersion = namedOption.OpenApiVersion;
3133
await GenerateAsync(documentName, writer, resolvedOpenApiVersion);

src/OpenApi/test/Microsoft.AspNetCore.OpenApi.Tests/Services/OpenApiDocumentProviderTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ private static IServiceProvider CreateServiceProvider(string[] documentNames)
6868
{
6969
serviceCollection.AddOpenApi(documentName);
7070
}
71-
var serviceProvider = serviceCollection.BuildServiceProvider();
71+
var serviceProvider = serviceCollection.BuildServiceProvider(validateScopes: true);
7272
return serviceProvider;
7373
}
7474
}

0 commit comments

Comments
 (0)