27

我正在尝试将 Swagger 添加到我的项目中。收到的错误如下。

无法使用服务容器中的服务和默认值来实例化“Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator”类型的构造函数。

由于我没有更改 Swagger 二进制文件本身的任何内容,因此只安装了Swashbuckle.AspNetCoreSwashbuckle.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"); });

我不确定我是否缺少一个包,如果我拥有的其中一个是错误的版本,或者我提供的设置配置是否不够。

4

2 回答 2

49

正如提问者在评论中指出的那样,为我解决这个问题的是在ConfigureServices.

具体来说,所需的行是:

services.AddMvcCore()
        .AddApiExplorer();
于 2019-03-06T09:23:25.650 回答
0

您应该 在您的应用程序services.AddMvc();中注册IServiceCollection并配置app.UseMvc()IApplicationBuilderStartup.cs

于 2019-02-10T15:01:15.113 回答