Ни один конструктор для типа SwaggerGenerator не может быть создан с использованием служб из контейнера служб и значений по умолчанию

Я пытаюсь добавить Swagger в свой проект. Полученная ошибка заключается в следующем.

Ни один конструктор для типа "Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator" не может быть создан с использованием служб из контейнера служб и значений по умолчанию.

Поскольку я ничего не изменил в самих двоичных файлах Swagger, просто установил пакеты Swashbuckle.AspNetCore и Swashbuckle.AspNetCore.Swagger (оба в версии 4.0.1), я предполагаю, что речь идет о конфигурации. Следуя предложенному здесь, я настроил конфигурацию, показанную ниже.

services.AddSwaggerGen(_ =>
{
  _.SwaggerDoc("v1", new Info { Version = "v1", Title = "My API" });
});

app.UseSwagger();
app.UseSwaggerUI(_ => { _.SwaggerEndpoint("/swagger/v1/swagger.json", "API docs"); });

Я не уверен, что мне не хватает пакета, одна из тех, что у меня, - неправильная версия, или мне не хватает набора настроек, который я предоставляю.

Ответы

Ответ 1

Как заметил автор в комментарии, для меня это решило добавление ссылки на Api Explorer в ConfigureServices.

Конкретно требуемая строка была:

services.AddMvcCore()
        .AddApiExplorer();

Ответ 2

Вы должны зарегистрировать services.AddMvc(); в IServiceCollection и настроить app.UseMvc() в IApplicationBuilder в своем приложении Startup.cs