无法使用服务容器中的服务和默认值实例化 SwaggerGenerator 类型的构造函数
No constructor for type SwaggerGenerator can be instantiated using services from the service container and default values
我正在尝试将 Swagger 添加到我的项目中。收到的错误如下。
No constructor for type 'Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator' can be instantiated using services from the service container and default values.
因为我没有对 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"); });
我不确定我是否缺少某个包,我拥有的其中一个版本是否错误,或者我提供的设置配置是否足够。
您应该在 IServiceCollection
中注册 services.AddMvc();
,并在您应用程序的 Startup.cs
中配置 app.UseMvc()
中的 IApplicationBuilder
正如提问者在评论中指出的那样,为我解决这个问题的方法是在 ConfigureServices
.
中添加对 Api Explorer 的引用
具体需要的行是:
services.AddMvcCore()
.AddApiExplorer();
我正在尝试将 Swagger 添加到我的项目中。收到的错误如下。
No constructor for type 'Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator' can be instantiated using services from the service container and default values.
因为我没有对 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"); });
我不确定我是否缺少某个包,我拥有的其中一个版本是否错误,或者我提供的设置配置是否足够。
您应该在 IServiceCollection
中注册 services.AddMvc();
,并在您应用程序的 Startup.cs
app.UseMvc()
中的 IApplicationBuilder
正如提问者在评论中指出的那样,为我解决这个问题的方法是在 ConfigureServices
.
具体需要的行是:
services.AddMvcCore()
.AddApiExplorer();