У меня есть следующий код в моем файле Startup.cs, чтобы захватить и обработать каждое из моих описаний версий API и добавить их в мой Swagger.
var apiVersionDescriptionProvider = services.BuildServiceProvider().GetService<IApiVersionDescriptionProvider>();
// Register the Swagger generator, defining 1 or more Swagger documents
services.AddSwaggerGen(setup =>
{
foreach (var description in apiVersionDescriptionProvider.ApiVersionDescriptions)
{
setup.SwaggerDoc(
$"MyAPISpecification{description.GroupName}",
new OpenApiInfo()
{
Title = "My API Specification",
Version = description.ApiVersion.ToString(),
});
}
Насколько я понимаю, я должен вводить реализацию в зависимости IApiVersionDescriptionProvider вместо использования BuildServiceProvider внутри метода ConfigureServices моего класса запуска, так как это предотвратит создание дополнительной копии одиночного файла.
Как бы я go об этом в этом конкретном c примере так как это метод, в котором настроены службы, поэтому у меня нет экземпляра, созданного к этому моменту, чтобы служба могла использовать без использования поставщика услуг построения.
Я читал где-то еще в StackOverflow об использовании параметров, но я не мог понять, как этот пример будет применяться в этом сценарии. Любая помощь будет принята с благодарностью, поскольку эта конфигурация Swagger основана на видео Pluralsight, опубликованном в конце 2019 года, и я ожидал, что оно будет правильным.
Заранее спасибо.