不能使用服务容器中的服务和默认值实例化SwaggerGenerator类型的构造函数

时间:2018-12-25 22:30:39

标签: c# swagger swagger-3.0

我正在尝试将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"); });

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

2 个答案:

答案 0 :(得分:10)

正如提问者在评论中指出的那样,为我解决的是在ConfigureServices中添加了对Api Explorer的引用。

具体来说,所需的行是:

services.AddMvcCore()
        .AddApiExplorer();

答案 1 :(得分:0)

您应该注册“ services.AddMvc();”在“ IServiceCollection”中

并在应用程序startup.cs中的IApplicationBuilder中配置“ app.UseMvc()”