web-dev-qa-db-ja.com

タイプSwaggerGeneratorのコンストラクターは、サービスコンテナーのサービスとデフォルト値を使用してインスタンス化できません

Swaggerをプロジェクトに追加しようとしています。受信したエラーは次のとおりです。

タイプ 'Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator'のコンストラクターは、サービスコンテナーのサービスとデフォルト値を使用してインスタンス化できません。

Swaggerバイナリ自体は何も変更していないため、パッケージSwashbuckle.AspNetCoreおよびSwashbuckle.AspNetCoreをインストールしただけです。 .Swagger(両方ともバージョン4.0.1)構成に関するものだと仮定しています。 here の提案に従って、以下に示す構成をセットアップしました。

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

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

パッケージが不足しているかどうか、持っているパッケージの1つが間違っているか、提供しているセット構成が十分でないかはわかりません。

18
DonkeyBanana

質問者がコメントで指摘したように、これを解決したのは、ConfigureServicesのApi Explorerへの参照を追加することでした。

具体的には、必要な行は次のとおりです。

services.AddMvcCore()
        .AddApiExplorer();
30
T S Taylor

services.AddMvc();IServiceCollectionに登録し、app.UseMvc()IApplicationBuilderにアプリケーションのStartup.cs

0
Annunaki_Selva