windows 上 .net core 3.0 webapi 的 Swagger 错误(无法解析类型 'ISwaggerProvider' 的服务)

Swagger error on .net core 3.0 webapi on windows (Unable to resolve service for type 'ISwaggerProvider' )

我有这个默认的 Web APi 脚手架。我包含了以下 Nuget 包。我在 Startup.cs 中有以下文件。但是它抛出错误。请协助

我的 Startup.cs class 有以下内容:-

            app.UseSwagger();

            app.UseSwaggerUI(c =>
            {
                c.RoutePrefix = "v1";
                var basePath = string.IsNullOrWhiteSpace(c.RoutePrefix) ? "." : "..";
                c.SwaggerEndpoint($"{basePath}/swagger/{c.RoutePrefix}/swagger.json", "Name");
            });

您遇到此问题的原因是您没有在 ConfigureServices(IServiceCollection services) 方法中调用 services.AddSwaggerGen()

此方法在 DI 容器中注册 ISwaggerProvider 接口,因为它未注册,您在调用 swagger 路由时会收到此异常。

ConfigureServices 中 swagger 部分的完整示例:

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