Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/OpenApi/src/Services/OpenApiDocumentProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ internal sealed class OpenApiDocumentProvider(IServiceProvider serviceProvider)
/// <param name="writer">A text writer associated with the document to write to.</param>
public async Task GenerateAsync(string documentName, TextWriter writer)
{
var optionsSnapshot = serviceProvider.GetRequiredService<IOptionsSnapshot<OpenApiOptions>>();
// Resolving IOptionsSnapshot requires a scoped service provider.
using var scopedService = serviceProvider.CreateScope();
var optionsSnapshot = scopedService.ServiceProvider.GetRequiredService<IOptionsSnapshot<OpenApiOptions>>();
var namedOption = optionsSnapshot.Get(documentName);
var resolvedOpenApiVersion = namedOption.OpenApiVersion;
await GenerateAsync(documentName, writer, resolvedOpenApiVersion);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ private static IServiceProvider CreateServiceProvider(string[] documentNames)
{
serviceCollection.AddOpenApi(documentName);
}
var serviceProvider = serviceCollection.BuildServiceProvider();
var serviceProvider = serviceCollection.BuildServiceProvider(validateScopes: true);
return serviceProvider;
}
}
Loading