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つが間違っているか、提供しているセット構成が十分でないかはわかりません。
質問者がコメントで指摘したように、これを解決したのは、ConfigureServices
のApi Explorerへの参照を追加することでした。
具体的には、必要な行は次のとおりです。
services.AddMvcCore()
.AddApiExplorer();
services.AddMvc();
をIServiceCollection
に登録し、app.UseMvc()
をIApplicationBuilder
にアプリケーションのStartup.cs